我们经常可以看到一些图片上的水印,一般分为图片、文字或者两者的结合。那为什么要加水印呢?目的是防止他人盗图、伪造或标出来源等,保护图片原作者的版权或劳动成果。那么给图片加水印就非常有必要了。如何用PHP给图片加水印?先来看看效果使用GD库实现效果ImageprocessingandGD-Manual俗话说授人以鱼不如授人以渔。只贴代码不讲实现过程的都是耍流氓。所以下面我就写一下函数的实现过程以及过程中需要的函数。内容基本是干货,需要的时候可以轻松查阅资料方法图片水印准备两张图片原图水印图片实现过程在php中加载这两张图片,获取图片资源数据类型。根据图像格式的不同,他们甚至可以从互联网上加载一张图片,使用相应的函数读取图片的宽度和高度。imagesx获取图片宽度imagesy获取图片高度getimagesize获取图片大小getimagesizefromstring从字符串中获取图片大小信息你可能需要缩小或放大水印图片(如果不需要,可以跳过这一步)等于scaling计算缩放比例,根据你想要缩放到的值(比如一张图片,宽度为500px,你想将其缩小到50px),计算缩放后的宽高,创建一个新的图片资源(新图片的宽高等于缩放后的宽高)imagecreatetruecolor新建一张真彩色图片复制部分图片并调整大小imagecopyresized复制部分图片并调整大小参数说明(我把参数做了semantic便于理解)imagecopyresized(目标图片资源,原图资源,贴在目标图片的起始横坐标,贴在目标的初始纵坐标image,复制原图初始横坐标,复制原图初始纵坐标,最终想要的宽度,最终想要的高度,原图的宽度,原图的高度);使用imagecopymerge函数复制水印图片并合并到原图。形式参数简单分析(我把参数语义化了,方便理解)imagecopymerge(原图资源,水印图资源,水印横坐标,水印纵坐标,复制水印图起始横坐标,复制水印图起始纵坐标,复制宽度、复制高度、水印透明度);水印透明度:透明度范围0-100输出图片函数关键字image+图片格式详见官方手册imagejpeg输出图片到浏览器或文档。imagepngimagegifimagewbmp...如果要输出到浏览器,需要设置content-typeheaderheader-ManualSendingnativeHTTPheaders常用对照表释放图片资源imagedestroy销毁图片文字水印形参简单分析参数语义化)imagettftext(图片资源,文字大小,文字角度,文字横坐标,文字纵坐标,文字颜色,字体,文字text)当文字大小GD库版本为1时,单位为像素(px),当版本为2、单位是点/磅(pt)px、pt、em换算表。文本的水平和垂直基点位置。字符的左下角是基点。PHP的imageTtfText()函数如果对你有帮助,或者为你节省了一些时间,点个赞吧~原文地址
