介绍
这篇文章主要介绍了使用PHP给图片加水印的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
为了防止辛苦做出来的图片被盗用,很多照片都会加上水印,可以直接用图片工具添加水印再上传,但PHP中就可以实现给图片加水印的功能,本文章向码农们介绍PHP给图片加水印的两种方法,感兴趣的码农可以参考一下本文章的源代码。
方法一:PHP最简单的加水印方法
& lt; PHP ? $ img =, imagecreatefromjpeg ($ filename); $ logo =, imagecreatefromjpeg ($ filename);/* imagecraetefromjpeg——由文件或URL创建一个新图像 imagecreatefromjpeg (string $ filename) 如果启用了fopen包装器,URL可以作为文件名*/imagecopy (img,美元标志,15日,15日,0,0,美元的宽度,高度美元);/* imagecopy (dst_im, src_im美元dst_x美元,美元dst_y, src_x美元,美元src_y, src_w美元,美元src_h) 美元dst_im是背景图像,就是需要添加水印的图片 美元src_im是水印图片;dst_x美元,# dst_y需要把水印放到背景图片的(x, y)坐标; src_x, src_y美元是截取水印的图片的开始坐标 宽度,高度是美元截取的图片的就是水印的长度和宽度*/时间=美元url & # 39; https://cache.yisu.com/upload/information/20201209/266/39841.jpg& # 39;; content 美元;=,file_get_contents ($ url);//把网址写入到内容这个变量里面/*函数,将整个文件读入到一个字符串*/时间=美元filename & # 39; tmp.jpg& # 39;; 写入(文件名、内容);//把所有内容放到文件名这个变量里面,第一个存放的是背景图片/* string 写入;$文件名,mixed 元数据)将一个字符串写入一个文件 文件名要被写入数据的文件名 数据要写入的数据,类型可以是字符串、数组或者是流资源*/url 美元;=,& # 39;& # 39;; 写入(& # 39;logo.png& # 39;, file_get_contents (url)美元);//第二个是水印的图片 $ img =, imagecreatefromjpeg ($ filename); $ logo =, imagecreatefrompng (& # 39; logo.png& # 39;); $ size =, getimagesize (& # 39; logo.png& # 39;);/* getimagesize()获得图像大小*/imagecopy (img,美元标志,15日,15日,0,0,大小[0]美元,美元大小[1]); 头(“centent-type:图像/jpeg"); imagejpeg (img); 祝辞;
方法二:php给图片加文字水印
& lt; php ?/*给图片加文字水印的方法*/时间=美元dst_path & # 39; https://cache.yisu.com/upload/information/20201209/266/39842.jpg& # 39;; $ dst =, imagecreatefromstring (file_get_contents (dst_path美元));/* imagecreatefromstring()——从字符串中的图像流新建一个图像,返回一个图像标示符,其表达了从给定字符串得来的图像 图像格式将自动监测,只要php支持jpeg, png、gif, wbmp,阻止gd2。*/时间=美元font & # 39;。/t1.ttf& # 39;; black 美元;=,imagecolorallocate (dst美元,,0,0,0); imagefttext (dst美元,20岁,0,10日,30日,黑色,美元,美元的字体,,& # 39;Hello 世界! & # 39;);/* imagefttext (img美元,美元大小,角度,$ x, y,美元美元的颜色,fontfile美元,美元文本) img美元由图像创建函数返回的图像资源 尺寸要使用的水印的字体大小 角(角度)文字的倾斜角度,如果是0度代表文字从左往右,如果是90度代表从上往下 x, y水印文字的第一个文字的起始位置 颜色是水印文字的颜色 fontfile,你希望使用truetype字体的路径 http://www.manongjc.com/article/1302.html */列表($ dst_w dst_h美元dst_type美元),=,getimagesize ($ dst_path);/*列表(mixed varname美元[mixed ……美元])——把数组中的值赋给一些变量 像数组()一样,这不是真正的函数,而是语言结构,列表()用一步操作给一组变量进行赋值*//* getimagesize()能获取到什么信息吗? getimagesize函数会返回图像的所有信息,包括大小,类型等等*/开关(dst_type美元){ case 1://GIF ,头(“内容类型:图像/gif"); 美元,imagegif (dst); ,打破; case 2://JPG ,头(“内容类型:图像/jpeg"); 美元,imagejpeg (dst); ,打破; case 3://PNG ,头(“内容类型:图像/png"); 美元,imagepng (dst); ,打破; ,默认值: ,打破; ,/* imagepng——以PNG格式将图像输出到浏览器或文件 ,imagepng()将GD图像流(图片)以png格式输出到标注输出(通常为浏览器),或者如果用文件名给出了文件名则将其输出到文件*/} imagedestroy (dst); ?在使用PHP给图片加水印的方法