1. 云栖社区>
  2. PHP教程>
  3. 正文

PHP给图片添加文字或图片水印的实现代码

作者:用户 来源:互联网 时间:2017-12-01 15:09:04

php图片实现代码添加文字水印

PHP给图片添加文字或图片水印的实现代码 - 摘要: 本文讲的是PHP给图片添加文字或图片水印的实现代码, 有时上传图片时,需要给图片添加水印,水印一般为文字或图片logo水印,下面就来看看两种添加方法。 一、文字水印 文字水印就是在图片上加上文字,主要使用gd库的imagefttext方法,并且需要字体文件。效果图如下: $dst_pa

有时上传图片时,需要给图片添加水印,水印一般为文字或图片logo水印,下面就来看看两种添加方法。

一、文字水印

文字水印就是在图片上加上文字,主要使用gd库的imagefttext方法,并且需要字体文件。效果图如下:

$dst_path='dst.jpg';//创建图片的实例$dst=imagecreatefromstring(file_get_contents($dst_path));//打上文字$font='./simsun.ttc';//字体路径$black=imagecolorallocate($dst,0x00,0x00,0x00);//字体颜色imagefttext($dst,13,0,20,20,$black,$font,'快乐编程');//输出图片list($dst_w,$dst_h,$dst_type)=getimagesize($dst_path);switch($dst_type){case1://GIFheader('Content-Type:image/gif');imagegif($dst);break;case2://JPGheader('Content-Type:image/jpeg');imagejpeg($dst);break;case3://PNGheader('Content-Type:image/png');imagepng($dst);break;default:break;}imagedestroy($dst);

新创建一张图片,然后打印文字水印:

//imagecreatefromstring//imageCreateFromPngCreateanewimagefromfileorURL创建图片对象//Createa300x100image,新创建一张图片$im=imagecreatetruecolor(500,300);//setcolor$red=imagecolorallocate($im,0xFF,0x00,0x00);$black=imagecolorallocate($im,0x00,0x00,0x00);//Makethebackgroundred//functionimagefilledrectangle($image,$x1,$y1,$x2,$y2,$color){}imagefilledrectangle($im,0,0,300,100,$red);//Pathtoourttffontfile$font_file='./font/Arial.ttf';//imagefttext($image,$size,$angle,$x,$y,$color,$fontfile,$text,$extrainfo=null)//Drawthetext'PHPManual'usingfontsize13imagefttext($im,13,0,150,50,$black,$font_file,'PHPManual');//Outputimagetothebrowserheader('Content-Type:image/png');imagepng($im);imagedestroy($im);

PHP给图片添加文字或图片水印的实现代码

二、图片水印

图片水印就是将一张图片加在另外一张图片上,主要使用gd库的imagecopy和imagecopymerge。

$dst_path='myimage.jpg';$src_path='http://www.logodashi.com/FileUpLoad/inspiration/636003768803214440.jpg';//创建图片的实例$dst=imagecreatefromstring(file_get_contents($dst_path));$src=imagecreatefromstring(file_get_contents($src_path));//获取水印图片的宽高list($src_w,$src_h)=getimagesize($src_path);//将水印图片复制到目标图片上,最后个参数50是设置透明度,这里实现半透明效果imagecopymerge($dst,$src,10,10,0,0,$src_w,$src_h,30);//如果水印图片本身带透明色,则使用imagecopy方法//imagecopy($dst,$src,10,10,0,0,$src_w,$src_h);//输出图片list($dst_w,$dst_h,$dst_type)=getimagesize($dst_path);switch($dst_type){case1://GIFheader('Content-Type:image/gif');imagegif($dst);break;case2://JPGheader('Content-Type:image/jpeg');imagejpeg($dst);break;case3://PNGheader('Content-Type:image/png');imagepng($dst);break;default:break;}imagedestroy($dst);imagedestroy($src);

效果图:

PHP给图片添加文字或图片水印的实现代码

三、其他有关图像处理的函数 /**返回图像的大小及图像类型//Getthesizeofanimage$size=getimagesize("http://image18-c.poco.cn/mypoco/myphoto/20160901/20/17857099520160901203311082.jpg?750x956_120");print_r($size);//打印结果Array([0]=>750[1]=>956[2]=>2[3]=>width="750"height="956"[bits]=>8[channels]=>3[mime]=>image/jpeg)*//***imagecopy—拷贝图像的一部分*///boolimagecopy(resource$dst_im,resource$src_im,int$dst_x,int$dst_y,int$src_x,int$src_y,int$src_w,int$src_h)//将src_im图像中坐标从src_x,src_y开始,宽度为src_w,高度为src_h的一部分拷贝到dst_im图像中坐标为dst_x和dst_y的位置上。/***http://php.net/manual/zh/function.imagecopymerge.php*imagecopymerge—拷贝并合并图像的一部分*boolimagecopymerge(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)***/

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 图片 , 实现 , 代码 , 添加 , 文字 水印 ,以便于您获取更多的相关知识。