PHP 图片添加水印(文字和图片)

    工作中,在一个内容管理系统的图片添加水印功能中,发现给图片添加水印后,图片会很模糊。查找原因,发现是与生成的添加水印后生成的图片的质量有关。顺藤摸瓜,了解了一下添加水印的原理。

主要是用到一下几个函数:

getimagesize()   获取上传图片的大小;

imagecreatetruecolor ( int x_size, int y_size ) 建一个大小为 x_sizey_size 的真彩色图像

imagecolorallocate ( resource image, int red, int green, int blue ) 为一幅图像分配颜色

imagefill ( resource image, int x, int y, int color ) 在 image 图像的坐标 x,y(图像左上角为 0, 0)处用 color 颜色执行区域填充(即与 x, y 点颜色相同且相邻的点都会被填充)。

imagecreatefromgif ( string filename )

imagecreatefromgif() 返回图像标识符,代表了从给定的文件名(gif格式的图片)取得的图像

int imagestring(int im, int font, int x, int y, string s, int col);返回值: 整数 函数种类: 图形处理b 内容说明:本函数在图片上绘出水平的横式字符串。参数 font 为字形,设为 1 到 5 表示使用默认字形。参数 x、y 为字符串起点坐标。字符串的内容放在参数 s 上。参数 col 表示字符串的颜色。

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 ) 即 int imagecopy (截取后图片,截取目标图片,将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上

imagejpeg ( resource image [, string filename [, int quality]] ) 从 image 图像以 filename 为文件名创建一个 JPEG 图像。image 参数是 imagecreatetruecolor() 函数的返回值。

:创建的添加水印的图片的质量就是上面的 quality 的值

quality 为可选项,范围从 0(最差质量,文件更小)到 100(最佳质量,文件最大)。默认为 IJG 默认的质量值(大约 75)。 如果想输出渐进式 JPEG,需要用 imageinterlace() 函数将隔行扫描比特置位。 )

imagedestroy ( resource image ) 销毁图像, 释放与 image 关联的内存。image 是由图像创建函数返回的图像标识.

 

演示代码

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值