首页/ 资源分享/ 正文

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);

效果图:

txsp.png

分享到:

如果您喜欢本站,点击这儿不花一分钱捐赠本站

资源解压密码默认为:vzzw.com www.vzzw.com

本站部分资源收集于网络,如有侵权请联系9108780#qq.com(#替换成@)

THE END

评论列表

暂时没有评论

发表评论: