300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > php制作水印案例 php 给图片添加水印 实例

php制作水印案例 php 给图片添加水印 实例

时间:2023-07-05 20:23:00

相关推荐

php制作水印案例 php 给图片添加水印 实例

方法已经放在下面了:

/**

* 添加图片水印

*

* @param $picPath

* @param $logoPath

*/

private function _addWaterMark($picPath, $logoPath)

{

//如果图片不存在或者logo不存在则不处理

if (!file_exists($picPath) || !file_exists($logoPath)) {

return;

}

//创建图片的实例

$im = imagecreatefromstring(file_get_contents($picPath));

//获取水印源

$watermark = imagecreatefromstring(file_get_contents($logoPath));

//获取图、水印 宽高类型

list($bgWidth, $bgHight, $bgType) = getimagesize($picPath);

list($logoWidth, $logoHight, $logoType) = getimagesize($logoPath);

//定义平铺数据

$xLength = $bgWidth - 10; //x轴总长度

$yLength = $bgHight - 10; //y轴总长度

//创建透明画布 伪白色

$opacity = 15;

$w = imagesx($watermark);

$h = imagesy($watermark);

$cut = imagecreatetruecolor($w, $h);

$white = imagecolorallocatealpha($cut, 255, 255, 255, 0);

imagefill($cut, 0, 0, $white);

//整合水印

imagecopy($cut, $watermark, 0, 0, 0, 0, $w, $h);

//循环平铺水印

for ($x = 0; $x < $xLength; $x++) {

for ($y = 0; $y < $yLength; $y++) {

imagecopymerge($im, $cut, $x, $y, 0, 0, $logoWidth, $logoHight, $opacity);

$y += $logoHight;

}

$x += $logoWidth;

}

imagejpeg($im, $picPath);

imagedestroy($im);

}

效果如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。