>
PHP图片添加水印
2021-02-02 14:22
PHP
  • 1558
  • 527
  • 64
  • 51

水印的含义及作用:

水印是一种数字保护的手段,在图像上添加水印即能证明本人的版权,还能对版权的保护做出贡献。

数字水印能在图像、声音、视频信号中添加某些数字信息以达到文件真伪鉴别,版权保护等功能。

水印能为收到版权信息产品归属提供有力的证据,并能够监视被保护数据的传播,真伪鉴别以及非法拷贝控制等。

目前好的水印效果能将图片做到与原始图片视觉效果一样,能做到不影响原有图片的视觉情况保护自己的版权。

简单的说即版权标志很难被伪造,而且在部分物理失真情况下(打印等)还能提供足够的版权证据。

图片水印的添加无疑是不少喜爱非主流的青年的不二选择。能让自己的照片更具独特性。

今天就用PHP语言来给图片添加水印:


首先我们先来了解一些函数:

1.由文件或 URL 创建一个新图象。
    imagecreatefrompng    (string  $filename ) : resource
imagecreatefrompng()    返回一图像标识符,代表了从给定的文件名取得的图像。
2.取得图像宽度。
    imagesx    ( resource $image   ) : int
imagesx() 返回    image 所代表的图像的宽度。 
3.取得图像高度。
        imagesy    ( resource$image   ) : int
        imagesy() 返回    image 所代表的图像的高度。 
4.取得使用 TrueType 字体的文本的范围
        imagettfbbox    ( float$size   , float$angle   , string$fontfile   , string$text   ) : array
        size  像素单位的字体大小。
        angle   text将被度量的角度大小。
        fontfile   TrueType 字体文件的文件名(可以是 URL)。      
        根据 PHP所使用的 GD 库版本,可能尝试搜索那些不是以 '/'开头的文件名并加上 '.ttf' 的后缀并搜索库定义的字体路径。 
        text 要度量的字符串。
5.imagettfbbox() 返回一个含有 8 个单元的数组表示了文本外框的四个角: 
        0    左下角 X 位置    4    右上角 X 位置    
        1    左下角 Y 位置    5    右上角 X 位置    
        2    右下角 X 位置    6    左上角 X 位置    
        3    右下角 Y 位置    7    左上角 Y 位置

添加水印文字代码:

$img=imagecreatefrompng('head.png');//打开需要添加水印文字的图片
$color=imagecolorallocate($img,247,49,49);//定义文字颜色
$width=imagesx($img);//获取图片宽度
$height=imagesy($img);//获取图片高度
$fontfile='SpicyPumpkin.ttf';//定义字体的路径
$posttion=imagettfbbox(15,0,$fontfile,'CYBLOG');//获取文字所占的位置
$rextwidth=$posttion[2]-$posttion[0];//获取文字的开始位置
imagettftext($img,15,0,$width-$rextwidth-($width/50),$height-($height/30),$color,$fontfile,'CYBLOG');//用 TrueType 字体向图像写入文本
imagepng($img);//输出图片
imagedestroy($img);//销毁图像

效果图如下:

image.png


需要用到的函数:

拷贝图像的一部分

imagecopy     ( resource$dst_im    , resource$src_im    , int$dst_x    , int$dst_y    , int$src_x    , int$src_y    , int$src_w    , int$src_h    ) : bool

将 src_im 图像中坐标从     src_x,src_y     开始,宽度为 src_w,高度为 src_h     的一部分拷贝到     dst_im 图像中坐标为     dst_x 和 dst_y 的位置上。


添加水印图标的代码:

$img=imagecreatefrompng('head.png');
$src_img=imagecreatefrompng('icon.png');
$src_img_width=imagesx($src_img);
$src_img_height=imagesy($src_img);
$width=imagesx($img);
$height=imagesy($img);
imagecopy($img,$src_img,$width-$src_img_width+($width/20),$height-$src_img_height+($height/20),0,0,$src_img_width,$src_img_height);
imagepng($img);
imagedestroy($img);


效果图如下:

image.png

图片添加水印就到此结束了。

如需要PHP参考手册的 已上传到CYBLOG :https://cyimt.net/Download/Download?Down=021420504376


全部留言 ()
返回
顶部