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 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/kangshuai/p/4883974.html