PHP - Wasserzeichen


Ein PHP Skript zur Darstellung eines Wasserzeichens in einer Bilddatei.




Ein Wasserzeichen temporär auf einer Grafikdatei via PHP darstellen. Hier im Beispielskript wurde ein Unterverzeichnis „bilder/“ erstellt. Im Beispiel hier befindet sich auch die Schiftart des Wasserzeichens im Verzeichnis „/bilder“.


<?php

// Wasserzeichen
$wasserzeichen = 'kreativWiki_';

// Pfad zum Bildcontainer
// Hier kannst Du natürlich eine Datenbankabfrage einbauen.
$pfad = 'bilder/';
$bilder = glob($pfad . '{*.jpg,*.JPG}', GLOB_BRACE);

// Bilder zufällig ausgeben
$maxindex = count($bilder) - 1;
$zufallsindex = rand(0,$maxindex);
// Hintergrund
$hintergrund = $bilder[$zufallsindex];

//Schriftart
$schriftart = $pfad . 'xfiles.ttf'; 

// Bild erzeugen mit Imagecreate
$bildcontainer = imagecreatefromjpeg($hintergrund);

//Schriftfarbe R G B Transparenz
//$farbe = ImageColorAllocatealpha($bildcontainer, 0, 0, 0, 75);
$farbe = ImageColorAllocatealpha($bildcontainer, 92, 100, 92, 42); 

//Schriftgrösse
$schriftgroesse = 22; 

// Schriftwinkel
$winkel = 0;

// Schriftposition X
$t_x = imagesx($bildcontainer) - 220;

// Schriftposition Y
$t_y = imagesy($bildcontainer) - 5;

// Bild erzeugen
header('Content-type: image/png');
   imagettftext(
        $bildcontainer,
        $schriftgroesse,
        $winkel,
        $t_x,
        $t_y,
        $farbe,
        $schriftart,
        $wasserzeichen
        );
imagepng($bildcontainer);

// Bild zerstören
imagedestroy($bildcontainer);

?>





Ausgabe im Browser (Ausschnitt):






Hier wird mit der Funktion „count“, die Anzahl der Bilder im Verzeichnis „bilder/“ ausgelesen und mit „rand“ zufällig ausgegeben. Das Wasserzeichen wird temporär in der Grafik erzeugt, ohne die Orginale Bilddatei zu beeinflussen.




Im folgenden PHP Script wird das Wasserzeichen mit den Grafiken im Verzeichnis „bilder/“ zufällig in der Datei „wasserzeichen.png“ generiert.

<?php

$wasserzeichen = 'kreativWiki_';

$pfad = 'bilder/';

$bilder = glob($pfad . '{*.jpg,*.JPG}', GLOB_BRACE);

$maxindex = count($bilder) - 1;
$zufallsindex = rand(0,$maxindex);

$hintergrund = $bilder[$zufallsindex];

// Schriftart
$schriftart = $pfad . 'xfiles.ttf'; 

// Hintergrund
$bildcontainer = imagecreatefromjpeg($hintergrund); 
$farbe = ImageColorAllocatealpha($bildcontainer, 0, 0, 0, 80); //Farbe

//Schriftgrösse
$schriftgroesse = 22; 

// rand(0,10);
$winkel = 0;

// Schriftposition X
$t_x = imagesx($bildcontainer) - 220;

// Schriftposition 
$t_y = imagesy($bildcontainer) - 5;

// header('Content-type: image/png');
imagettftext(
     $bildcontainer,
     $schriftgroesse,
     $winkel,
     $t_x,
     $t_y,
     $farbe,
     $schriftart,
     $wasserzeichen
        );
imagepng($bildcontainer, 'wasserzeichen.png');
imagedestroy($bildcontainer);

echo '<img src="wasserzeichen.png" />';

?>



Nach dem Aufruf des Skriptes im Webbrowser, kann das Generieren des Wasserzeichens, durch öffnen der Datei „wasserzeichen.png“ mit einem Bildbetrachter überprüft werden.





Cloud