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图片水印平铺水印+倾斜水印

    A+
发布日期:2023年03月28日 14:16:42  所属分类:PHP
最后更新时间:2023-03-28 14:17:40
付杰
  • ¥ 59.0元
  • 市场价:99.0元
  • ¥ 498.0元
  • 市场价:598.0元
  • ¥ 1.0元
  • 市场价:9.9元
  • ¥ 199.0元
  • 市场价:199.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: