PHP实现图片加水印(平铺水印+倾斜水印)代码

PHP图片水印代码示例:

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

 PHP图片水印最终效果:

PHP实现图片加水印(平铺水印+倾斜水印)代码

版权声明:
作者:糖糖爱吃肉
链接:https://0731666.xyz/51.html
来源:编程技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>