一、什么是水印
所谓数字水印是向数据多媒体(如图像、声音、视频信号等)中添加某些数字信息以达到文件真伪鉴别、版权保护等功能。
二、水印功能
- 真伪鉴别
- 版权保护
- 防盗链
三、水印图像实现
- 通过PS等设计软件,进行设计实现
- 通过PHP等编程语言来设计实现
四、水印实现原理图
- 文字水印(验证码)
- 图片水印:把一张图片嵌入在另一张图片中
五、水印制作五步走
第一步:获取目标图片资源(原图像),imagecreatefrom(jpeg|gif|png)
第二步:获取水印图片资源(水印图像),imagecreatefrom(jpeg|gif|png)
第三步:采样合并
要使用到的知识点: bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct ) 参数说明: $dst_im :目标图片资源(原图像) $src_im :水印图片资源(水印图) $dst_x :水印图片在原图像中的位置(横坐标) $dst_y :水印图片在原图像中的位置(纵坐标) $src_x :取样水印图片的位置(横坐标) $src_y :取样水印图片的位置(纵坐标) $src_w :水印图片的宽度 $src_h :水印图片的高度 $pct :透明度,0-100,0代表全透明,100代表不透明,0-100之间代表半透明 功能:imagecopymerge — 拷贝并合并图像的一部分
第四步:保存图片资源
第五步:销毁图片资源
六、水印图具体实现
//1、获取目标图片资源(原图) $dst = imagecreatefromjpeg('girl.jpg'); //2、获取水印图片资源(水印图) $src = imagecreatefromjpeg('water.jpg'); //3、采样合并 imagecopymerge($dst, $src, 0, 0, 0, 0, 105, 45, 50); //4、保存图片资源 imagejpeg($dst,'water_girl.jpg'); //5、销毁图片资源 imagedestroy($src); imagedestroy($dst);
扩展:可以定制水印图像的位置(左上角、右上角、左下角、右下角、居中位置)
左上角:横坐标0,纵坐标0
右上角:纵坐标0,横坐标(原图宽度-水印图片宽度)
左下角:横坐标0,纵坐标(原图高度-水印图片高度)
右下角:横纵坐标都是使用原图-水印图宽高
居中位置:
横坐标 :ceil((原图宽度-水印图宽度)/2)
纵坐标 :ceil((原图高度-水印图高度)/2)