Heim >Backend-Entwicklung >PHP-Tutorial >Fügen Sie PHP-Bildern ein chinesisches Wasserzeichen hinzu, um die gemeinsame Nutzung von Code zu ermöglichen
Beispiel 1
Code kopieren Der Code lautet wie folgt:
Header("Content-type: image/png"); /*Benachrichtigen Sie den Browser, dass ein Bild erstellt werden soll Ausgabe*/
$im = imagecreate(400, 300); /*Größe des Bildes definieren*/
$gray = ImageColorAllocate($im, 235, 235);
$pink = ImageColorAllocate($im, 255, 128 , 255);
$fontfile = "simkai.ttf";
/* $fontfile-Schriftpfad kann je nach Betriebssystem simhei.ttf (schwarzer Körper) sein, SIMKAI.TTF (kursiv), SIMFANG .TTF (Imitation Song Dynasty), SIMSUN.TTC (Song Dynasty & New Song Dynasty) und andere chinesische Schriftarten, die von GD*/
$str = iconv('GB2312','UTF -8','Chinesisches Wasserzeichen'); /*konvertiert den gb2312-Zeichensatz in UTF-8-Zeichen*/
ImageTTFText($im, 30, 0, 100, 200, $pink, $fontfile, $str);
/* Chinesisches Wasserzeichen hinzufügen*/
Imagepng($im);
ImageDestroy($im);
Beispiel 2
Code kopieren Der Code ist wie folgt:
/ /*********************************** ***** //
// Funktion: Text zum Bild hinzufügen
// Parameter: $img Bilddateiname
// $new_img Speichern Sie den Bilddateinamen. Wenn er leer ist, wird nicht gespeichert das Bild
// $text String-Inhalt
// text_size String-Größe
// text_angle Schriftart-String-Ausgabewinkel
// text_x String-Ausgabe x-Koordinate
// text_y String-Ausgabe y-Koordinate
// Name der $text_font-Schriftartdatei
// $r,$g,$b Zeichenfolgenfarbe RGB-Wert
// ********************* ************ *********** //
function img_text($img, $new_img, $text, $text_size, $text_angle, $text_x, $ text_y, $text_font, $r, $g, $ b){
$text=iconv("gb2312","UTF-8",$text); ");
$im = @imagecreatefromstring( file_get_contents($img)) oder sterben ("Fehler beim Öffnen des Bildes!");
$color = ImageColorAllocate($im, $r,$g,$b) ;
//ImageTTFText(int im, int size , int angle, int x, int y, int col, string fontfile, string text):
//Diese Funktion schreibt TTF-Schriftarttext (TrueType Fonts) in die Bild.
//Parameter: Größe ist die Schriftgröße;
// Winkel ist der Winkel der Schrift, berechnet im Uhrzeigersinn, 0 Grad ist horizontal (von links nach rechts), 90 Grad ist der Text von unten nach top ;
// Die beiden Parameter x und y sind die Koordinatenwerte des Textes (der Ursprung ist die obere linke Ecke);
// col ist die Farbe des Textes; Fontfile ist der Name der Schriftartdatei;
/ /text ist der String-Inhalt.
ImageTTFText($im, $text_size, $text_angle, $text_x, $text_y, $color, $text_font, $text);
if ($new_img==""):
ImageGif($im ); // Das Bild nicht speichern, sondern nur anzeigen
ImageGif($im,$new_img); // Das Bild speichern, aber nicht anzeigen
ImageDestroy ($im); / /Grafiken beenden und Speicherplatz freigeben
}
Beispiel 3
Code kopieren Der Code lautet wie folgt:
/*
* Funktion: PHP-Bildwasserzeichen (Wasserzeichen unterstützt Bilder oder Text)
* Parameter:
* Das Hintergrundbild von $groundImage, also das Bild, das mit einem Wasserzeichen versehen werden muss, unterstützt derzeit nur GIF , JPG, PNG-Formate;
* $waterPos-Wasserzeichenposition, es gibt 10 Zustände, 0 ist eine zufällige Position; ist Mitte links, 5 ist Mitte Mitte, 6 ist Mitte Rechts; 7 bedeutet unten links, 8 bedeutet unten in der Mitte, 9 bedeutet unten rechts; , das als Wasserzeichen verwendete Bild, unterstützt derzeit nur die Formate GIF, JPG und PNG; * $textFont-Textgröße, der Wert ist 1, 2, 3, 4 oder 5, der Standardwert ist 5; * $textColor-Textfarbe, der Wert ist ein hexadezimaler Farbwert, der Standardwert ist #FF0000 (rot);
*
* Hinweis: Unterstützt GD 2.0, unterstützt FreeType, GIF Read, GIF Create, JPG, PNG
* Es ist am besten, $waterImage und $waterText nicht gleichzeitig zu verwenden. Wählen Sie einfach eines davon aus sie und verwenden Sie zuerst $waterImage.
* Wenn $waterImage gültig ist, sind die Parameter $waterString, $stringFont und $stringColor nicht gültig.
* Der Dateiname des mit Wasserzeichen versehenen Bildes ist derselbe wie $groundImage.
* Autor: longware @ 2004-11-3 14:15:13
*/
function imageWaterMark($groundImage,$waterPos=0,$waterImage="",$waterText="",$ textFont=5,$textColor=“#FF0000″)
{
$isWaterImage = FALSE;
$formatMsg = „Dieses Dateiformat wird noch nicht unterstützt, um das Bild in GIF zu konvertieren oder JPG., PNG-Format. ";
//Wasserzeichendatei lesen
if(!emptyempty($waterImage) && file_exists($waterImage))
{
$isWaterImage = TRUE;
$water_info = getimagesize($waterImage);
$water_w = $water_info[0];//Ermitteln Sie die Breite des Wasserzeichenbilds.
$water_h = $water_info[1];//Erhalten Sie die Höhe des Wasserzeichens Bild
switch($water_info[2])//Erhalten Sie das Format des Wasserzeichenbildes
{
case 1:$water_im = imagecreatefromgif($waterImage);break;
case 2:$water_im = imagecreatefromjpeg($ waterImage) ;break;
case 3:$water_im = imagecreatefrompng($waterImage);break;
default:die($formatMsg);
}
//Hintergrundbild lesen
if(!emptyempty($groundImage) && file_exists($groundImage))
{
$ground_info = getimagesize($groundImage);
$ground_w = $ground_info[0];//Den Hintergrund abrufen Bildbreite
$ground_h = $ground_info[1];//Ermitteln Sie die Höhe des Hintergrundbilds
switch($ground_info[2])//Erhalten Sie das Format des Hintergrundbilds
{
Fall 1:$ground_im = imagecreatefromgif($groundImage);break;
Fall 2:$ground_im = imagecreatefromjpeg($groundImage);break;
Fall 3:$ground_im = imagecreatefrompng($groundImage);break; >default:die( $formatMsg);
}
}
else
{
die("Das Bild, das mit einem Wasserzeichen versehen werden muss, existiert nicht!");
}
//Wasserzeichenposition
if($isWaterImage)//Bildwasserzeichen
{
$w = $water_w;
$h = $water_h;
}
else//Textwasserzeichen
{
$temp = imagettfbbox(ceil($textFont*5),0“,./cour.ttf“,$waterText);//Get the Textbereich mit TrueType-Schriftart
$w = $temp[2] - $temp[6]; ;
$label = "Textbereich";
}
if( ($ground_w<$w) || ($ground_h<$h) )
{
echo "Die Länge oder Breitenverhältnis des Bildes, das mit einem Wasserzeichen versehen werden muss. Das Wasserzeichen „.$label“ ist zu klein, um ein Wasserzeichen zu erzeugen! ";
return;
}
switch($waterPos)
{
case 0://random
$posX = rand(0,($ground_w - $w)) ;
$posY = rand(0,($ground_h - $h));
case 1://1 ist oben links
$posY = 0;
break;case 2://2 ist oben zentriert
$posX = ($ground_w - $w) / 2;
Fall 3://3 bedeutet oben rechts
$posX = $ground_w - $w;
$posY = 0;
Fall 4://4 bedeutet Mitte links
$posX = 0;
$posY = ($ground_h - $h) / 2;
break;
case 5://5 ist in der Mitte zentriert
$posX = ($ ground_w - $w) / 2;
$posY = ($ground_h - $h) / 2;
break; $ground_w - $ w;
$posY = ($ground_h - $h) / 2;
case 7://7 ist unten links
$posX = 0; $posY = $ground_h - $h;
break;
case 8://8 ist unten zentriert
$posX = ($ground_w - $w) / 2; - $ h;
break;case 9://9 ist unten rechts
$posX = $ground_w - $w;
default://random
$posX = rand(0,($ground_w - $w));
$posY = rand(0,($ground_h - $h)); ;
}
//Legen Sie den Farbmischmodus des Bildes fest
imagealphablending($ground_im, true);
if($isWaterImage)//Bildwasserzeichen
{
imagecopy( $ground_im , $water_im, $posX, $posY, 0, 0, $water_w,$water_h);//Kopiere das Wasserzeichen in die Zieldatei
}
else//Textwasserzeichen
{
if( ! emptyempty($textColor) && (strlen($textColor)==7) )
{
$R = hexdec(substr($textColor,1,2)); hexdec(substr( $textColor,3,2));
$B = hexdec(substr($textColor,5));
}
else
{
die("Das Wasserzeichen Das Textfarbformat ist falsch! ”);
}
imagestring ( $ground_im, $textFont, $posX, $posY, $waterText, imagecolorallocate($ground_im, $R, $G, $B));
}
//Bild mit Wasserzeichen generieren
@unlink($groundImage);
switch($ground_info[2])//Format des Hintergrundbilds abrufen
{
case 1:imagegif($ground_im, $groundImage);break;
case 2:imagejpeg($ground_im,$groundImage);break
case 3:imagepng($ground_im,$groundImage);break; ;
}
//Speicher freigeben
if(isset($water_info)) unset($water_info);
if(isset($water_im)) imagedestroy($water_im); ($ground_info);
imagedestroy($ground_im>}
//—————————————— — —
$id=$_REQUEST['id'];
$num = count($_FILES['userfile']['name']); ;
print_r($_FILES['userfile']['name']);
echo $num
echo „
“;
for($i=0;$i<$id;$i++){
if(isset($_FILES) && !emptyempty($_FILES['userfile']) && $_FILES['userfile']['size']>0)
{
$uploadfile = „./“ .time().“_“.$_FILES['userfile'][name][$i];
echo „
“;
echo $uploadfile;
if (copy($_FILES['userfile']['tmp_name'][$i], $uploadfile))
{
echo „OK
“;
//文字水印
//imageWaterMark($uploadfile,5“,"“,HTTP://www.lvye.info“,5“,#cccccc“);
//图片水印
$waterImage=“logo_ok1.gif“;//水印图片路径
imageWaterMark($uploadfile,9,$waterImage);
echo „“;
}
else
{
echo „Fail
“;
}
}
}
}
?>