图像添加logo水印函数
1 <?php 2 //图像添加水印函数 3 /** 4 *为一张图片添加上一个logo水印(以保存新图片的方式实现) 5 *@param string $picname 被缩放的处理图片源 6 *@param int $logo 水印图片 7 *@param string $pre 缩放后图片的前缀名 8 *@return $string 返回后的图片名称() 如a.jpg->n.jpg 9 * 10 **/ 11 function imageUpdateLogo($picname,$logo,$pre="n_"){ 12 $picnameinfo=getimageSize($picname);//获取图片源的基本信息 13 $logoinfo=getimageSize($logo);//获取logo图片源的基本信息 14 15 //根据图片类型创建出对应的图片源 16 switch($picnameinfo[2]){ 17 case 1://gif 18 $im=imagecreatefromgif($picname); 19 break; 20 case 2://jpg 21 $im=imagecreatefromjpeg($picname); 22 break; 23 case 3://png 24 $im=imagecreatefrompng($picname); 25 break; 26 default: 27 die("图像类型错误"); 28 } //根据logo图片类型创建对应的图片源 29 switch($logoinfo[2]){ 30 case 1://gif 31 $logoim=imagecreatefromgif($logo); 32 break; 33 case 2://jpg 34 $logoim=imagecreatefromjpeg($logo); 35 break; 36 case 3://png 37 $logoim=imagecreatefrompng($logo); 38 break; 39 default: 40 die("图像类型错误"); 41 } 42 //执行图片水印处理 43 imagecopyresampled($im,$logoim,$picnaeinfo[0]=$logoinfo[0],$picnaeinfo[1]=$logoinfo[1],0,0,$logoinfo[0],$logoinfo[1],$logoinfo[0],$logoinfo[1]); 44 //输出图像(根据源图像的类型,输出为对应的类型) 45 $picinfo=pathinfo($picname);//解析源图像的名字和路径信息 46 $newpicname=$picinfo["dirname"]."/".$pre.$picinfo["basename"]; 47 switch($picnameinfo[2]){ 48 case 1: 49 imagegif($im,$newpicname); 50 break; 51 case 2: 52 imagejpeg($im,$newpicname); 53 break; 54 case 3: 55 imagepng($im,$newpicname); 56 break; 57 } 58 //释放图片资源 59 imagedestroy($im); 60 imagedestroy($logoim); 61 //返回结果 62 return $newpicname; 63 } 64 // 测试成功 65 echo imageUpdateLogo("images/8.14.jpg","images/bg_00.jpg"); // 返回的结果为 images/n_8.14.jpg 66 ?>
版权声明:本文为kangshuai原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。