Home >Backend Development >PHP Tutorial >PHP image adding watermark function, PHP image watermark function code example

PHP image adding watermark function, PHP image watermark function code example

WBOY
WBOYOriginal
2016-07-25 08:51:52983browse
  1. /**

  2. * Add watermark to picture (applicable to png/jpg/gif format)
  3. *
  4. * @author flynetcn
  5. *
  6. * @param $srcImg original picture
  7. * @param $waterImg watermarked picture
  8. * @param $savepath save path
  9. * @param $savename Save name
  10. * @param $positon Watermark position
  11. * 1: Top left, 2: Top right, 3: Center, 4: Bottom left, 5: Bottom right
  12. * @param $alpha Transparency - - 0: Completely transparent, 100: Completely opaque
  13. * Scripting School http://bbs.it-home.org
  14. * @return Success - the new image address after watermarking
  15. * Failure - -1: The original file does not Exists, -2: The watermark image does not exist, -3: The creation of the original file image object failed
  16. * -4: The creation of the watermark file image object failed -5: The new image after adding the watermark failed to save
  17. */
  18. function img_water_mark($srcImg, $waterImg, $savepath=null, $savename=null, $positon=5, $alpha =30)
  19. {
  20. $temp = pathinfo($srcImg);
  21. $name = $temp['basename'];
  22. $path = $temp['dirname'];
  23. $exte = $temp['extension'] ;
  24. $savename = $savename ? $savename : $name;
  25. $savepath = $savepath ? $savepath : $path;
  26. $savefile = $savepath .'/'. $savename;
  27. $srcinfo = @getimagesize($srcImg );
  28. if (!$srcinfo) {
  29. return -1; //The original file does not exist
  30. }
  31. $waterinfo = @getimagesize($waterImg);
  32. if (!$waterinfo) {
  33. return -2; //Watermark The image does not exist
  34. }
  35. $srcImgObj = image_create_from_ext($srcImg);
  36. if (!$srcImgObj) {
  37. return -3; //The creation of the original file image object failed
  38. }
  39. $waterImgObj = image_create_from_ext($waterImg);
  40. if (!$waterImgObj) {
  41. return -4; //Failed to create watermark file image object
  42. }
  43. switch ($positon) {
  44. //1 Top left
  45. case 1: $x=$y=0; break;
  46. / /2 Top right
  47. case 2: $x = $srcinfo[0]-$waterinfo[0]; $y = 0; break;
  48. //3 Center
  49. case 3: $x = ($srcinfo[0]- $waterinfo[0])/2; $y = ($srcinfo[1]-$waterinfo[1])/2; break;
  50. //4 bottom left
  51. case 4: $x = 0; $y = $srcinfo [1]-$waterinfo[1]; break;
  52. //5 bottom right
  53. case 5: $x = $srcinfo[0]-$waterinfo[0]; $y = $srcinfo[1]-$waterinfo[ 1]; break;
  54. default: $x=$y=0;
  55. }
  56. imagecopymerge($srcImgObj, $waterImgObj, $x, $y, 0, 0, $waterinfo[0], $waterinfo[1], $ alpha);
  57. switch ($srcinfo[2]) {
  58. case 1: imagegif($srcImgObj, $savefile); break;
  59. case 2: imagejpeg($srcImgObj, $savefile); break;
  60. case 3: imagepng($ srcImgObj, $savefile); break;
  61. default: return -5; //Save failed
  62. }
  63. imagedestroy($srcImgObj);
  64. imagedestroy($waterImgObj);
  65. return $savefile;
  66. }

  67. < p>function image_create_from_ext($imgfile)
  68. {
  69. $info = getimagesize($imgfile);
  70. $im = null;
  71. switch ($info[2]) {
  72. case 1: $im=imagecreatefromgif($imgfile); break ;
  73. case 2: $im=imagecreatefromjpeg($imgfile); break;
  74. case 3: $im=imagecreatefrompng($imgfile); break;
  75. }
  76. return $im;
  77. }

Copy code


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn