Heim >Backend-Entwicklung >PHP-Tutorial >Beispielcode einer PHP-Funktion zum Hinzufügen von Wasserzeichen zu Bildern
In diesem Artikel wird hauptsächlich die Funktion zum Hinzufügen von Wasserzeichen zu Bildern in PHP vorgestellt. Er analysiert die Schritte und zugehörigen Techniken zum Hinzufügen von Wasserzeichen zu Bildern in PHP anhand von zwei einfachen Beispielen
Zusammenfassung der Beispiele in diesem Artikel PHP-Bildwasserzeichenfunktion hinzugefügt. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Beispiel 1. Fügen Sie eine Wasserzeichenfunktion unter einem sehr einfachen Bild hinzu
<?php /** * 追加水印 * * @param string $source_img 原始图片url * @param string $water_map 水印图片url */ function addWaterMap($source_img, $water_map) { $img = imagecreatefromjpeg($source_img); //读取原图 $img_x = imagesx($img); //原图宽 $img_y = imagesy($img); //原图高 imagealphablending($img, true);//设置为混合填色模式 //$img_water_map = imagecreatefromjpeg($water_map); //读取水印图片 $img_water_map = imagecreatefrompng($water_map); $water_x = imagesx($img_water_map); //水印宽 $water_y = imagesy($img_water_map); //水印高 $wimg_x = $img_x - $water_x - 10; //水印x坐标 $wimg_y = $img_y - $water_y - 10; //水印y坐标 imagecopy($img, $img_water_map, $wimg_x, $wimg_y, 0, 0, $water_x, $water_y); //分别为原图,水印,水印x坐标,水印y坐标,水印图片横轴开始点,水印图片纵轴开始点,水印横轴结束,水印纵轴结束 imagejpeg($img, $source_img, 95); //输出到目标文件 imagedestroy($img); //销毁内存数据流 imagedestroy($img_water_map); //销毁内存数据流 return true; } ?>
Beispiel 2. Fügen Sie eine Wasserzeichenklasse zu a hinzu relativ vollständiges Bild
<?php /** * 图片加水印(适用于png/jpg/gif格式) * * @author flynetcn * * @param $srcImg 原图片 * @param $waterImg 水印图片 * @param $savepath 保存路径 * @param $savename 保存名字 * @param $positon 水印位置 * 1:顶部居左, 2:顶部居右, 3:居中, 4:底部局左, 5:底部居右 * @param $alpha 透明度 -- 0:完全透明, 100:完全不透明 * * @return 成功 -- 加水印后的新图片地址 * 失败 -- -1:原文件不存在, -2:水印图片不存在, -3:原文件图像对象建立失败 * -4:水印文件图像对象建立失败 -5:加水印后的新图片保存失败 */ function img_water_mark($srcImg, $waterImg, $savepath=null, $savename=null, $positon=5, $alpha=30) { $temp = pathinfo($srcImg); $name = $temp['basename']; $path = $temp['dirname']; $exte = $temp['extension']; $savename = $savename ? $savename : $name; $savepath = $savepath ? $savepath : $path; $savefile = $savepath .'/'. $savename; $srcinfo = @getimagesize($srcImg); if (!$srcinfo) { return -1; //原文件不存在 } $waterinfo = @getimagesize($waterImg); if (!$waterinfo) { return -2; //水印图片不存在 } $srcImgObj = image_create_from_ext($srcImg); if (!$srcImgObj) { return -3; //原文件图像对象建立失败 } $waterImgObj = image_create_from_ext($waterImg); if (!$waterImgObj) { return -4; //水印文件图像对象建立失败 } switch ($positon) { //1顶部居左 case 1: $x=$y=0; break; //2顶部居右 case 2: $x = $srcinfo[0]-$waterinfo[0]; $y = 0; break; //3居中 case 3: $x = ($srcinfo[0]-$waterinfo[0])/2; $y = ($srcinfo[1]-$waterinfo[1])/2; break; //4底部居左 case 4: $x = 0; $y = $srcinfo[1]-$waterinfo[1]; break; //5底部居右 case 5: $x = $srcinfo[0]-$waterinfo[0]; $y = $srcinfo[1]-$waterinfo[1]; break; default: $x=$y=0; } imagecopymerge($srcImgObj, $waterImgObj, $x, $y, 0, 0, $waterinfo[0], $waterinfo[1], $alpha); switch ($srcinfo[2]) { case 1: imagegif($srcImgObj, $savefile); break; case 2: imagejpeg($srcImgObj, $savefile); break; case 3: imagepng($srcImgObj, $savefile); break; default: return -5; //保存失败 } imagedestroy($srcImgObj); imagedestroy($waterImgObj); return $savefile; } function image_create_from_ext($imgfile) { $info = getimagesize($imgfile); $im = null; switch ($info[2]) { case 1: $im=imagecreatefromgif($imgfile); break; case 2: $im=imagecreatefromjpeg($imgfile); break; case 3: $im=imagecreatefrompng($imgfile); break; } return $im; }
Das obige ist der detaillierte Inhalt vonBeispielcode einer PHP-Funktion zum Hinzufügen von Wasserzeichen zu Bildern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!