:: Anbieterverzeichnis :: Globale Branchen
:: SELFPHP Forum ::
Fragen rund um die Themen PHP?
In über
130.000 Beiträgen finden Sie sicher die passende
Antwort! 
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
|
Wasserzeichen on-the-fly in Bild einfügen  |
|
SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an.
Weitere Informationen
Beispielaufgabe
In ein bestehendes Bild soll on-the-fly ein Wasserzeichen mit variabler Transparenz eingeblendet werden.
Beschreibung
Der folgende Code Snippet erzeugt on-the-fly ein neues Bild (GIF, JPEG oder PNG) mit einem Wasserzeichen. Das Script wird im IMG-Tag mit einem Query folgender Parameter aufgerufen.
- "d" - ist das Bild in das, das Wasserzeichen eingefügt werden soll.
- "w" - gibt den Dateinamen des Wasserzeichen an.
Optionale Parameter:
- "p" - bestimmt die Position an der das Wasserzeichen eingefügt wird.
- "t" - legt die Transparenz (in Prozent) des Wasserzeichens fest.
- "q" - steuert die Ausgabequalität, wenn der Ausgabetype ein JPEG-Bild ist.
- "r" - selektiert den Ausgabetype (GIF, JPEG oder PNG).
Weitere Informationen zu den optionalen Parametern finden sich an entsprechender Stelle im Code Snippet.
<?PHP
$strImageDestination = './path/to/img/' . $_GET['d'];
$strImageWatermark = './path/to/watermark/' . $_GET['w'];
/*
* Transparenz des Wasserzeichens in Prozent (0 - 100).
* 0 = Keine Transparenz.
* 100 = Voellige Transparenz.
*
* Standard 65%
*/
$iTransparency = 65;
if ( !empty ( $_GET['t'] ) )
{
$iTransparency = $_GET['t'];
}
/*
* Bildquallitaet des Ausgabebilds in Prozent (0 - 100).
* Hat nur Auswirkungen bei Ausgabeformat 2.
*
* Standard = 80%
*/
$iQuality = 80;
if ( !empty ( $_GET['q'] ) )
{
$iQuality = $_GET['q'];
}
list ( $iDestinationWidth, $iDestinationHeight,
$iDestinationType ) = getimagesize ( $strImageDestination );
list ( $iWatermarkWidth, $iWatermarkHeight,
$iWatermarkType ) = getimagesize ( $strImageWatermark );
switch ( $iDestinationType )
{
case 1:
$rDestination = imagecreatefromgif ( $strImageDestination );
break;
case 2:
$rDestination = imagecreatefromjpeg ( $strImageDestination );
break;
case 3:
$rDestination = imagecreatefrompng ( $strImageDestination );
}
switch ( $iWatermarkType )
{
case 1:
$rWatermark = imagecreatefromgif ( $strImageWatermark );
break;
case 2:
$rWatermark = imagecreatefromjpeg ( $strImageWatermark );
break;
case 3:
$rWatermark = imagecreatefrompng ( $strImageWatermark );
}
/*
* Position des Wasserzeichens (1 - 5).
* 1 = Oben links.
* 2 = Oben rechts.
* 3 = Unten links.
* 4 = Unten rechts
* 5 = Horizontal/vertikal zentriert.
*
* Standard = 4
*/
switch ( $_GET['p'] )
{
case 1:
$iPositionX = 0;
$iPositionY = 0;
break;
case 2:
$iPositionX = $iDestinationWidth - $iWatermarkWidth;
$iPositionY = 0;
break;
case 3:
$iPositionX = 0;
$iPositionY = $iDestinationHeight - $iWatermarkHeight;
break;
case 4:
default:
$iPositionX = $iDestinationWidth - $iWatermarkWidth;
$iPositionY = $iDestinationHeight - $iWatermarkHeight;
break;
case 5:
$iPositionX = ceil ( ( $iDestinationWidth / 2 ) );
$iPositionX -= ceil ( ( $iWatermarkWidth / 2 ) );
$iPositionY = ceil ( ( $iDestinationHeight / 2 ) );
$iPositionY -= ceil ( ( $iWatermarkHeight / 2 ) );
}
$iTransparency = 100 - $iTransparency;
imagecopymerge ( $rDestination, $rWatermark, $iPositionX,
$iPositionY, 0, 0, $iWatermarkWidth,
$iWatermarkHeight, $iTransparency );
/*
* Ausgabeformat (1 - 3):
* 1 = GIF-Format
* 2 = JPEG-Format
* 3 = PNG-Format
*
* Standard = 3
*/
switch ( $_GET['r'] )
{
case 1:
header ( 'content-type: image/gif' );
imagegif ( $rDestination );
break;
case 2:
header ( 'content-type: image/jpeg' );
imagejpeg ( $rDestination, '', $iQuality );
break;
case 3:
default:
header ( 'content-type: image/png' );
imagepng ( $rDestination );
}
imagedestroy ( $rDestination );
imagedestroy ( $rWatermark );
?>
|
Anwendungsbeispiel
<html>
<head>
<title>
BEISPIEL: Wasserzeichen
</title>
</head>
<body>
Bild mit Wasserzeichen:<br />
<br />
<img src="setWatermark.php?d=picture.jpg&w=watermark.gif&p=5" />
</body>
</html>
|
Zielbild: picture.jpg

Wasserzeichen: watermark.gif

Ausgabebeispiel: Browseransicht

|
|
|
|
|


:: Anbieterverzeichnis ::
Webhosting/Serverlösungen
Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?
Sie sind nur ein paar Klicks davon entfernt! 
|