PHP给图片添加满屏水印
微站长
3年前
1372
0
源码:
$img = '待加水印图片'; $source = '水印图片'; //参数设置,值越大水印越稀(水印平铺的越少),相反... $ww = 0; //每个水印的左右间距 $hh = 0; //每个水印的上下间距 //水印图片旋转角度 $angle = 30; //水印透明度 $opacity = 50; //获取图片和水印的信息 $imgInfo = @getimagesize($img); $sourceInfo = @getimagesize($source); //创建水印图像资源 $fun = 'imagecreatefrom' . image_type_to_extension($sourceInfo[2], false); $water = $fun($source); //水印图片旋转 $water = imagerotate($water, $angle, imageColorAllocateAlpha($water, 0, 0, 0, 127)); //获取水印图片旋转后的宽度和高度 $sourceInfo[0] = imagesx($water); $sourceInfo[1] = imagesy($water); //设定水印图像的混色模式 imagealphablending($water, true); //添加水印 $src = imagecreatetruecolor($sourceInfo[0], $sourceInfo[1]); // 调整默认颜色 $color = imagecolorallocate($src, 255, 255, 255); imagefill($src, 0, 0, $color); //创建图片图像资源 $fun = 'imagecreatefrom' . image_type_to_extension($imgInfo[2], false); $thumb = $fun($img); //定义平铺数据 $x_length = $imgInfo[0] - 10; //x轴总长度 $y_length = $imgInfo[1] - 10; //y轴总长度 //循环平铺水印 for ($x = 0; $x < $x_length; $x) { for ($y = 0; $y < $y_length; $y) { imagecopy($src, $thumb, 0, 0, $x, $y, $sourceInfo[0], $sourceInfo[1]); imagecopy($src, $water, 0, 0, 0, 0, $sourceInfo[0], $sourceInfo[1]); imagecopymerge($thumb, $src, $x, $y, 0, 0, $sourceInfo[0], $sourceInfo[1], $opacity); $y += $sourceInfo[1] + $hh; } $x += $sourceInfo[0] + $ww; } imagejpeg($thumb,$tmp); //销毁零时图片资源 imagedestroy($src); //销毁水印资源 imagedestroy($water);
效果图:
THE END
评论列表