首頁  >  文章  >  後端開發  >  php圖片水印程式碼,php上傳圖片加水印實例程式碼

php圖片水印程式碼,php上傳圖片加水印實例程式碼

WBOY
WBOY原創
2016-07-25 08:51:47799瀏覽
  1. //上傳檔案類型清單
  2. $uptypes=array(
  3. 'image/jpg',
  4. 'image/ jpeg',
  5. 'image/png',
  6. 'image/pjpeg',
  7. 'image/gif',
  8. 'image/bmp',
  9. 'image/x-png'
  10. );
  11. $max_file_size=2000000; //上傳檔案大小限制, 單位BYTE
  12. $destination_folder="uploadimg/"; //上傳檔案路徑
  13. $watermark=1; //是否有附加浮水印(1為加浮水印,其他為不加浮水印);
  14. $watertype=1; //水印類型(1為文字,2為圖片)
  15. $waterposition=1; //水印位置(1為左下角,2為右下角
  16. ,3為左上角,4為右上角,5為居中);
  17. $waterstring="http://bbs.it-home.org/"; //水印字符字串
  18. $waterimg="xplore.gif"; //水印圖片
  19. $imgpreview=1; //是否產生預覽圖(1為生成,其他為不生成);
  20. $imgpreviewsize=1/ 2; //縮圖比例
  21. ?>
  22. ZwelL圖片上傳程式
  23. method="post" name="upform">
  24. 上傳檔案:

  25. 允許上傳的檔案類型為:=implode(', ',$uptypes)?>
  26. if ($_SERVER ['REQUEST_METHOD'] == 'POST')
  27. {
  28. if (!is_uploaded_file($_FILES["upfile"]
  29. [tmp_name]))
  30. //是否存在檔案
  31. {
  32. echo "圖片不存在!";
  33. exit;
  34. }
  35. $file = $_FILES["upfile"];
  36. if($max_file_size //檢查檔案大小
  37. {
  38. echo "檔案太大!";
  39. exit;
  40. }
  41. if(!in_array($file["type"], $uptypes ))
  42. //檢查檔案類型
  43. {
  44. echo "檔案類型不符!".$file["type"];
  45. exit;
  46. }
  47. if(!file_exists( $destination_folder))
  48. {
  49. mkdir($destination_folder);
  50. }
  51. $filename=$file["tmp_name"];
  52. $image_size = getimagesize($filename); $pinfo=pathinfo($file["name"]);
  53. $ftype=$pinfo['extension'];
  54. $destination = $destination_folder.
  55. time().".".$ftype ;
  56. if (file_exists($destination) &&
  57. $overwrite != true)
  58. {
  59. echo "同名檔案已經存在了";
  60. exit;
  61. }
  62. if (!move_uploaded_file ($filename,
  63. $destination))
  64. {
  65. echo "行動檔案出錯";
  66. exit;
  67. }
  68. $pinfo=pathinfo($destination); 🎜>$fname=$pinfo[basename];
  69. echo " 已經成功上傳

  70. 檔名:
  71. ".$ destination_folder.
  72. $fname."

  73. ";
  74. echo " 寬度:".$image_size[0];
  75. echo " 長度:".$image_size[1];
  76. echo "
    大小:".$file["size"]." bytes";
  77. if($watermark==1)
  78. {
  79. $iinfo=getimagesize($destination,$iinfomark );
  80. $nimage=imagecreatetruecolor($image_size[0]
  81. ,$image_size[1]);
  82. $white=imagecolorallocate($nimage,255,255,255);; ,0,0,0);
  83. $red=imagecolorallocate($nimage,255,0,0);
  84. imagefill($nimage,0,0,$white);
  85. switch ($iinfo[ 2])
  86. {
  87. case 1:
  88. $simage =imagecreatefromgif($destination);
  89. break;
  90. case 2:
  91. $simage =imagecreatefromjpeg($destination); >break;
  92. case 3:
  93. $simage =imagecreatefrompng($destination);
  94. break;
  95. case 6:
  96. $simage =imagecreatefromwbmp($destination); $simage =imagecreatefromwbmp($destination); ; 🎜>default:
  97. die("不支援的檔案類型");
  98. exit;
  99. }
  100. imagecopy($nimage,$simage,0,0,0,0,
  101. $ image_size[0],$image_size[1]);
  102. imagefilledrectangle($nimage,1,
  103. $image_size[1]-15,80,$image_size[1],$white);
  104. switch( $watertype)
  105. {
  106. case 1: //加浮水印字串
  107. imagestring($nimage,2,3,$image_size[1]-15,
  108. $waterstring,$black);
  109. break;
  110. case 2: //加浮水印圖片
  111. $simage1 =imagecreatefromgif("xplore.gif");
  112. imagecopy($nimage,$simage1,0,0,0,0,85 ,15);
  113. imagedestroy($simage1);
  114. break;
  115. }
  116. switch ($iinfo[2])
  117. {
  118. case 1: //image( $nimage, $destination);
  119. imagejpeg($nimage, $destination);
  120. break;
  121. case 2:
  122. imagejpeg($nimage, $destination);
  123. break;
  124. break;
  125. case 3:
  126. imagepng($nimage, $destination);
  127. break;
  128. case 6:
  129. imagewbmp($nimage, $destination);
  130. //imagejpeg($nimage, $depation );
  131. break;
  132. }
  133. //覆蓋原始上傳檔案
  134. imagedestroy($nimage);
  135. imagedestroy($simage);
  136. }
  137. if($imgpreview==1)
  138. {
  139. echo "
    圖片預覽:
    ";
  140. echo "height=".( $image_size[1]*$imgpreviewsize);"
  141. echo " alt="圖片預覽:r檔案名稱:".
  142. $destination."r上傳時間:" />";
  143. }
  144. }
  145. ?>
複製程式碼


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn