• php 给图片添加水印 实例


    方法已经放在下面了:

    /**
    * 添加图片水印
    *
    * @param $picPath
    * @param $logoPath
    */
    private function _addWaterMark($picPath, $logoPath)
    {
    //如果图片不存在或者logo不存在则不处理
    if (!file_exists($picPath) || !file_exists($logoPath)) {
    return;
    }

    //创建图片的实例
    $im = imagecreatefromstring(file_get_contents($picPath));

    //获取水印源
    $watermark = imagecreatefromstring(file_get_contents($logoPath));

    //获取图、水印 宽高类型
    list($bgWidth, $bgHight, $bgType) = getimagesize($picPath);
    list($logoWidth, $logoHight, $logoType) = getimagesize($logoPath);

    //定义平铺数据
    $xLength = $bgWidth - 10; //x轴总长度
    $yLength = $bgHight - 10; //y轴总长度

    //创建透明画布 伪白色
    $opacity = 15;
    $w = imagesx($watermark);
    $h = imagesy($watermark);
    $cut = imagecreatetruecolor($w, $h);
    $white = imagecolorallocatealpha($cut, 255, 255, 255, 0);
    imagefill($cut, 0, 0, $white);

    //整合水印
    imagecopy($cut, $watermark, 0, 0, 0, 0, $w, $h);

    //循环平铺水印
    for ($x = 0; $x < $xLength; $x++) {
    for ($y = 0; $y < $yLength; $y++) {
    imagecopymerge($im, $cut, $x, $y, 0, 0, $logoWidth, $logoHight, $opacity);
    $y += $logoHight;
    }
    $x += $logoWidth;
    }
    imagejpeg($im, $picPath);
    imagedestroy($im);
    }

    效果如下:

    
    
  • 相关阅读:
    C# Winform中WndProc 函数作用
    C#程序集编译输出XML文档的作用
    C#属性访问器
    C#索引器
    static修饰符
    abstract 与 interface
    使用 Override 和 New 关键字进行版本控制
    scrapy爬虫初体验
    正则表达式
    MySQL常用指令
  • 原文地址:https://www.cnblogs.com/liuqd001/p/10905945.html
Copyright © 2020-2023  润新知