PHP实现图片加水印

PHP实现图片加水印php

[PHP] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
/**测试

  • 为一张图片添加上一个logo图片水印(以保存的方式实现)
  • @param string $picname 被处理图片源
  • @param string $logo 水印图片
  • @param string $pre 处理后图片名的前缀名
  • @return String 返回后的图片名称(带路径),如a.jpg=>n_a.jpg

*/
function imageUpdateLogo($picname,$logo,$pre="n_"){
$picnameinfo = getimageSize($picname); //获取图片源的基本信息
$logoinfo = getimageSize($logo); //获取logo图片的基本信息
//var_dump($logoinfo);
//根据图片类型建立出对应的图片源
switch($picnameinfo[2]){spa

case 1: //gif
   $im = imagecreatefromgif($picname);
   break;
 case 2: //jpg
   $im = imagecreatefromjpeg($picname);
   break;
 case 3: //png
   $im = imagecreatefrompng($picname);
   break;
 default:
   die("图片类型错误!");

}
//根据logo图片类型建立出对应的图片源
switch($logoinfo[2]){code

case 1: //gif
   $logoim = imagecreatefromgif($logo);
   break;
 case 2: //jpg
   $logoim = imagecreatefromjpeg($logo);
   break;
 case 3: //png
   $logoim = imagecreatefrompng($logo);
   break;
 default:
   die("logo图片类型错误!");

}
//执行图片水印处理
imagecopyresampled($im,$logoim,$picnameinfo[0]-$logoinfo[0],$picnameinfo[1]-$logoinfo[1],0,0,$logoinfo[0],$logoinfo[1],$logoinfo[0],$logoinfo[1]);
//输出图像(根据源图像的类型,输出为对应的类型)
$picinfo = pathinfo($picname);//解析源图像的名字和路径信息
$newpicname= $picinfo["dirname"]."/".$pre.$picinfo["basename"];
switch($picnameinfo[2]){blog

case 1:
   imagegif($im,$newpicname);
   break;
 case 2:
   imagejpeg($im,$newpicname);
   break;
 case 3:
   imagepng($im,$newpicname);
   break;

}
//释放图片资源
imagedestroy($im);
imagedestroy($logoim);
//返回结果
return $newpicname;
}
//测试
echo imageUpdateLogo("./images/PHP.jpg","./images/logo.png","itcast_");
?>
测试效果:
图片描述
更多技术资讯可关注:gzitcast图片

相关文章
相关标签/搜索