zoukankan      html  css  js  c++  java
  • PHP图片水印_PHP平铺水印_PHP图片多水印_PHP图片倾斜水印

    下面介绍的是php实现图片多个水印,平铺水印,倾斜水印

     1     //$img => 图片,$source => 水印
     2     $img = 'test.jpg';
     3     $source = 'source.png';
     4 
     5     //参数设置,值越大水印越稀(水印平铺的越少),相反...
     6     $ww = 0;  //每个水印的左右间距
     7     $hh = 0;  //每个水印的上下间距
     8 
     9     //水印图片旋转角度
    10     $angle = 30;
    11 
    12     //水印透明度
    13     $opacity = 20;
    14 
    15     //获取图片和水印的信息
    16     $imgInfo = getimagesize($img);
    17     $sourceInfo = getimagesize($source);
    18 
    19     //创建水印图像资源
    20     $fun   = 'imagecreatefrom' . image_type_to_extension($sourceInfo[2], false);
    21     $water = $fun($source);
    22     //水印图片旋转
    23     $water = imagerotate($water,$angle, imageColorAllocateAlpha($water, 0, 0, 0, 127));
    24     //获取水印图片旋转后的宽度和高度
    25     $sourceInfo[0] = imagesx($water);
    26     $sourceInfo[1] = imagesy($water);
    27 
    28     //设定水印图像的混色模式
    29     imagealphablending($water, true);
    30     //添加水印
    31     $src = imagecreatetruecolor($sourceInfo[0], $sourceInfo[1]);
    32     // 调整默认颜色
    33     $color = imagecolorallocate($src, 255, 255, 255);
    34     imagefill($src, 0, 0, $color);
    35 
    36     //创建图片图像资源
    37     $fun   = 'imagecreatefrom' . image_type_to_extension($imgInfo[2], false);
    38     $thumb = $fun($img);
    39 
    40     //定义平铺数据
    41     $x_length = $imgInfo[0] - 10; //x轴总长度
    42     $y_length = $imgInfo[1] - 10; //y轴总长度
    43     //循环平铺水印
    44     for ($x = 0; $x < $x_length; $x) {
    45         for ($y = 0; $y < $y_length; $y) {
    46             imagecopy($src, $thumb, 0, 0, $x, $y, $sourceInfo[0], $sourceInfo[1]);
    47             imagecopy($src, $water, 0, 0, 0, 0, $sourceInfo[0], $sourceInfo[1]);
    48             imagecopymerge($thumb, $src, $x, $y, 0, 0, $sourceInfo[0], $sourceInfo[1], $opacity);
    49             $y += $sourceInfo[1] + $hh;
    50         }
    51         $x += $sourceInfo[0] + $ww;
    52     }
    53 
    54     header("Content-type:image/jpeg");
    55     imagejpeg($thumb);
    56 
    57     //销毁零时图片资源
    58     imagedestroy($src);
    59     //销毁水印资源
    60     imagedestroy($water);

    效果展示

  • 相关阅读:
    农历查询
    C#颜色转换函数
    在IIS部署Silverlight网站
    silverlight双击事件处理
    关于List.Sort想到的
    sql获取总列数
    NHibernate的no persister for
    如何快速构建React组件库
    如何用canvas拍出 jDer's工作照
    Picker 组件的设计与实现
  • 原文地址:https://www.cnblogs.com/lzijiangg/p/14206251.html
Copyright © 2011-2022 走看看