水印的含义及作用:
水印是一种数字保护的手段,在图像上添加水印即能证明本人的版权,还能对版权的保护做出贡献。
数字水印能在图像、声音、视频信号中添加某些数字信息以达到文件真伪鉴别,版权保护等功能。
水印能为收到版权信息产品归属提供有力的证据,并能够监视被保护数据的传播,真伪鉴别以及非法拷贝控制等。
目前好的水印效果能将图片做到与原始图片视觉效果一样,能做到不影响原有图片的视觉情况保护自己的版权。
简单的说即版权标志很难被伪造,而且在部分物理失真情况下(打印等)还能提供足够的版权证据。
图片水印的添加无疑是不少喜爱非主流的青年的不二选择。能让自己的照片更具独特性。
今天就用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);//销毁图像
效果图如下:
需要用到的函数:
拷贝图像的一部分
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);
效果图如下:
图片添加水印就到此结束了。
如需要PHP参考手册的 已上传到CYBLOG :https://cyimt.net/Download/Download?Down=021420504376