php为图片加水印logo
时间:2011-10-03
来源:互联网
总是想多掌握些php的功能,对采集模拟请求 图片处理 字符串处理等很感兴趣,于是慢慢的在网上找例子,看函数,查找用法,今天写了个图片加水印图的函数,写的简陋,大家多指点
大图:http://pic8.nipic.com/20100630/2723613_152020829187_2.jpg
水印图:http://cn.php.net/images/php.gif ,php logo
代码:
复制代码
大图:http://pic8.nipic.com/20100630/2723613_152020829187_2.jpg
水印图:http://cn.php.net/images/php.gif ,php logo
代码:
-
- <?php
- /*
- 函数说明:功能--------返回图片标识符
- 参数:$src---图片地址
- */
- function getimg($src){
- //图片相关信息数组
- $arr=@getimagesize($src);
- switch($arr[2]){
- case 1:$img=imagecreatefromgif($src);break;
- case 2:$img=imagecreatefromjpeg($src);break;
- case 3:$img=imagecreatefrompng($src);break;
- default:return false;
- }
- return $img;
- }
-
-
- /*
- waterpic($src1,$src2,$position=1)函数说明:功能--------加水印图片
- 参数:$src1------大图地址,$src2-----水印图片地址 ,$position------水印位置(默认1,左上1,左下2,右上3,右下4)
- 返回值:根据返回值1,2,3,0,输出相应的错误提示,返回0--正确 1---大图地址错误,2---水印图地址错误,3-水印图过大
- */
- function waterpic($src1,$src2,$position=1){
- //获得1 2图片的标识符
- $img1=getimg($src1);
- $arr1=@getimagesize($src1);
- if(!$arr1)return 1;
- list($k1,$g1)=$arr1;
- //图片2
- $img2=getimg($src2);
- $arr2=@getimagesize($src2);
- if(!$arr2)return 2;
- list($k2,$g2)=$arr2;
- //图片加水印,把小图加到大图上面
- //水印加的位置:左上1,左下2,右上3,右下4
- if($k1>=$k2&&$g1>=$g2){
- //可以加水印图,设置图片位置
- switch($position){
- case 1:$x=0;$y=0;break;
- case 2:$x=0;$y=$g1-$g2;break;
- case 3:$x=$k1-$k2;$y=0;break;
- case 4:$x=$k1-$k2;$y=$g1-$g2;break;
- default:$x=0;$y=0;
- }//end switch($position)
- //开始加水印
- imagecopy($img1,$img2,$x,$y,0,0,$k2,$g2);
- //根据图片类型设置输出
- switch($arr1[2]){
- case 1:header('content-type:image/gif');imagegif($img1,false,100);break;
- case 2:header('content-type:image/jpeg');imagejpeg($img1,false,100);break;
- case 3:header('content-type:image/png');imagepng($img1,false,100);break;
- }
- return 0;
- }//end if($k1>=$k2&&$g1>=$g2)
- else{
- //echo '水印图片过大';
- return 3;
- }
- }//end function waterpic($src1,$src2,$position=1)
-
-
-
- //下面是具体的加水印图的测试
- $position=3;//水印加的位置:左上1,左下2,右上3,右下4
- $src1='http://pic8.nipic.com/20100630/2723613_152020829187_2.jpg';//大图
-
- $src2='http://cn.php.net/images/php.gif';//水印图片
- $return=waterpic($src1,$src2,$position);//加水印图,根据返回值判断是否成功,失败,给予相应的错误原因
- if($return==1)echo '第1张图片获取失败';
- if($return==2)echo '第2张图片获取失败';
- if($return==3)echo '水印图片过大,确保水印图片宽高小于大图';
-
- ?>
作者: 阿修罗 发布时间: 2011-10-03
谢谢分享
作者: tangxuewu 发布时间: 2011-10-03
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28