php为png/jpg/gif格式图片添加水印

WBOY
Freigeben: 2016-07-25 08:53:05
Original
981 Leute haben es durchsucht
  1. /**
  2. * 图片加水印(适用于png/jpg/gif格式)
  3. * * @author flynetcn
  4. * * @param $srcImg 原图片
  5. * @param $waterImg 水印图片
  6. * @param $savepath 保存路径
  7. * @param $savename 保存名字
  8. * @param $positon 水印位置
  9. * 1:顶部居左, 2:顶部居右, 3:居中, 4:底部局左, 5:底部居右
  10. * @param $alpha 透明度 -- 0:完全透明, 100:完全不透明 *
  11. * @return 成功 -- 加水印后的新图片地址
  12. * 失败 -- -1:原文件不存在, -2:水印图片不存在, -3:原文件图像对象建立失败-4:水印文件图像对象建立失败, -5:加水印后的新图片保存失败
  13. */
  14. function img_water_mark($srcImg, $waterImg, $savepath=null, $savename=null, $positon=5, $alpha=30) {
  15. $temp = pathinfo($srcImg);
  16. $name = $temp['basename'];
  17. $path = $temp['dirname'];
  18. $exte = $temp['extension'];
  19. $savename = $savename ? $savename : $name;
  20. $savepath = $savepath ? $savepath : $path;
  21. $savefile = $savepath .'/'. $savename;
  22. $srcinfo = @getimagesize($srcImg);
  23. if (!$srcinfo) {
  24. return -1; //原文件不存在
  25. }
  26. $waterinfo = @getimagesize($waterImg);
  27. if (!$waterinfo) {
  28. return -2; //水印图片不存在
  29. }
  30. $srcImgObj = image_create_from_ext($srcImg);
  31. if (!$srcImgObj) {
  32. return -3; //原文件图像对象建立失败
  33. }
  34. $waterImgObj = image_create_from_ext($waterImg);
  35. if (!$waterImgObj) {
  36. return -4; //水印文件图像对象建立失败
  37. } switch ($positon) {
  38. //1顶部居左
  39. case 1: $x=$y=0; break;
  40. //2顶部居右
  41. case 2: $x = $srcinfo[0]-$waterinfo[0]; $y = 0; break;
  42. //3居中
  43. case 3: $x = ($srcinfo[0]-$waterinfo[0])/2; $y = ($srcinfo[1]-$waterinfo[1])/2; break; //4底部居左 case 4: $x = 0; $y = $srcinfo[1]-$waterinfo[1]; break; //5底部居右 case 5: $x = $srcinfo[0]-$waterinfo[0]; $y = $srcinfo[1]-$waterinfo[1]; break; default: $x=$y=0; } imagecopymerge($srcImgObj, $waterImgObj, $x, $y, 0, 0, $waterinfo[0], $waterinfo[1], $alpha);
  44. switch ($srcinfo[2]) {
  45. case 1: imagegif($srcImgObj, $savefile); break;
  46. case 2: imagejpeg($srcImgObj, $savefile); break;
  47. case 3: imagepng($srcImgObj, $savefile); break;
  48. default: return -5; //保存失败
  49. }
  50. imagedestroy($srcImgObj);
  51. imagedestroy($waterImgObj);
  52. return $savefile; } function image_create_from_ext($imgfile) {
  53. $info = getimagesize($imgfile);
  54. $im = null; switch ($info[2]) {
  55. case 1: $im=imagecreatefromgif($imgfile); break;
  56. case 2: $im=imagecreatefromjpeg($imgfile); break;
  57. case 3: $im=imagecreatefrompng($imgfile); break;
  58. }
  59. return $im;
  60. } ?>
复制代码


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage