ホームページ  >  記事  >  バックエンド開発  >  PHP画像にウォーターマークを追加する関数、PHP画像にウォーターマーク関数のコード例

PHP画像にウォーターマークを追加する関数、PHP画像にウォーターマーク関数のコード例

WBOY
WBOYオリジナル
2016-07-25 08:51:52951ブラウズ
  1. /**
  2. * 画像に透かしを追加します (png/jpg/gif 形式に適用可能)
  3. *
  4. * @author flynetcn
  5. *
  6. * @param $srcImg 元の画像
  7. * @param $waterImg 透かしのある画像
  8. * @param $savepath 保存パス
  9. * @param $savename 保存名
  10. * @param $positon ウォーターマークの位置
  11. * 1: 左上、2: 右上、3: 中央、4: 左下、5: 右下
  12. * @param $alpha 透明度 - - 0 : 完全に透明、100: 完全に不透明
  13. * スクリプト スクール http://bbs.it-home.org
  14. * @return 成功 - 透かし入れ後の新しい画像アドレス
  15. * 失敗 - -1: 元のファイルが存在しない、 - 2: ウォーターマーク画像が存在しません、-3: 元のファイル画像オブジェクトの作成に失敗しました
  16. * -4: ウォーターマークファイル画像オブジェクトの作成に失敗しました -5: ウォーターマーク追加後の新しい画像の保存に失敗しました
  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 : $path;
  26. $savefile = $savepath .'/'。 );
  27. if (!$srcinfo) {
  28. return -1; //元のファイルは存在しません
  29. }
  30. $waterinfo = @getimagesize($waterImg);
  31. if (!$waterinfo) {
  32. return -2; /Watermark 画像が存在しません
  33. }
  34. $srcImgObj = image_create_from_ext($srcImg);
  35. if (!$srcImgObj) {
  36. return -3; //元のファイル画像オブジェクトの作成に失敗しました
  37. }
  38. $waterImgObj = image_create_from_ext ($waterImg);
  39. if (!$waterImgObj) {
  40. return -4; //ウォーターマークファイル画像オブジェクトの作成に失敗しました
  41. }
  42. switch ($position) {
  43. //1 左上
  44. case 1: $x=$ y=0; ブレーク;
  45. / /2 右上
  46. ケース 2: $x = $srcinfo[0]-$waterinfo[0]; $y = 0; ブレーク;
  47. //3 中央
  48. ケース 3: $x = ($srcinfo[0]-$waterinfo[0])/2; $y = ($srcinfo[1]-$waterinfo[1])/2; ブレーク;
  49. //4 左下
  50. ケース 4: $x = 0; $y = $srcinfo [1]-$waterinfo[1];
  51. //5 右下
  52. ケース 5: $y = $srcinfo[0] 1]-$waterinfo[1]; ブレーク;
  53. デフォルト: $x=$y=0;
  54. }
  55. imagecopymerge($srcImgObj, $waterImgObj, $x, $y, 0, 0, $waterinfo[0], $ Waterinfo[1], $ alpha);
  56. switch ($srcinfo[2]) {
  57. ケース 1: imagegif($srcImgObj, $savefile); ブレーク;
  58. ケース 2: imagejpeg($srcImgObj, $savefile);ケース 3: imagepng($ srcImgObj, $savefile); Break;
  59. default: return -5; //保存に失敗しました
  60. }
  61. imagedestroy($waterImgObj);
  62. return $savefile;
  63. }< /p>
  64. function image_create_from_ext($imgfile)

  65. {
  66. $info = getimagesize($imgfile);
  67. $im = null;
  68. switch ($info[2]) {
  69. ケース 1: $im=imagecreatefromgif ($imgfile); ブレーク ;
  70. ケース 2: $im=imagecreatefromjpeg($imgfile); ブレーク;
  71. ケース 3: $im=imagecreatefrompng($imgfile); ブレーク;
  72. }
  73. return $im;
  74. }
  75. コードをコピー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。