//$img => 图片,$source => 水印
$img = 'test.jpg';
$source = 'source.png';
//参数设置,值越大水印越稀(水印平铺的越少),相反...
$ww = 0; //每个水印的左右间距
$hh = 0; //每个水印的上下间距
//水印图片旋转角度
$angle = 30;
//水印透明度
$opacity = 20;
//获取图片和水印的信息
$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;
}
header("Content-type:image/jpeg");
imagejpeg($thumb);
//销毁零时图片资源
imagedestroy($src);
//销毁水印资源
imagedestroy($water);
最终实现效果如下:本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!