GD图像处理应用案例:水印图
水印图的实现
水印图:watermark,在某个图片上增加一个透明的印记(马赛克)
水印图用途:版权操作.
1.制作图片水印原理:
水印图制作原理:将一个带有明显标志的图片放到另外一张需要处理的图片之上.
a.获取原图资源
b.获取水印图资源
c.合并图片(把水印图合到目标图上)
d.保存输出
e.清空资源
2.实现固定位置的水印图:例如左上角
a.获取原图资源
b.获取水印图资源
c.合并图片(把水印图合到目标图上):使用imagecopymerge()函数.
imagecopymerge — 拷贝并合并图像的一部分
格式:
imagecopymerge ( 目标图像资源 , 源图像资源 , 目标图起始点x
, 目标图起始点y
, 源图起始点x
, 源图起始点y
, 源图宽
, 源图高
, 透明度百分比 ) : bool
将 src_im
图像中坐标从 src_x
,src_y
开始,宽度为 src_w
,高度为 src_h
的一部分拷贝到 dst_im
图像中坐标为 dst_x
和 dst_y
的位置上。两图像将根据 pct
来决定合并程度,其值范围从 0 到 100。当 pct
= 0 时,实际上什么也没做,当为 100 时对于调色板图像本函数和imagecopy() 完全一样,它对真彩色图像实现了 alpha 透明
d.保存输出
e.清空资源
3.实现可选9个位置的水印图:封装制作水印图的函数
a.创建一个制作水印图的函数结构:
制作水印图需要提供多少条件?源图资源,水印图资源.(可能产生的)错误信息,水印(9个)位置选择,透明度.
b.结果是希望产生加载水印的效果图:
成功则返回文件保存名字;失败则返回false.但是需要告知错误原因:通过引用传参告知调用者.
C.水印效果图前提:源图和水印都存在
d.判断保存路径是否存在
e.打开源图和水印资源
- (1)想办法确定用什么函数来打开图片资源:需要通过图片MIME类型确定,获取图片信息
- (2). 通过MIME类型得到想要打开图片的函数:先设定1个数组进行匹配,匹配成功自动构造创建函数(保存函数),失败则提示错误.
(3)匹配数据:
参考:MIME参考手册
部分MIME图片类型参考:
image/bmp | bmp |
image/cis-cod | cod |
image/gif | gif |
image/ief | ief |
image/jpeg | jpe |
image/jpeg | jpeg |
image/jpeg | jpg |
image/pipeg | jfif |
image/svg+xml | svg |
image/tiff | tif |
image/tiff | tiff |
(4)组合函数名字:建立原图资源/建立水印资源/建立最终效果图资源
(5)打开图片资源
f.合并图片资源:
(1)产生水印-位置需要计算.
(2)合并图片资源
g.保存水印图片和销毁资源
h.测试:函数调用的时候,可以通过结果判断操作是否成功