ホームページ >バックエンド開発 >PHPチュートリアル >PHP 画像の透かしとアップロードされた画像の透かし

PHP 画像の透かしとアップロードされた画像の透かし

WBOY
WBOYオリジナル
2016-07-25 09:07:401221ブラウズ
  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="< ;A href="http://www .xplore.cn/">
  18. http://www.xplore.cn/"; //ウォーターマーク文字列
  19. $waterimg="xplore.gif"; //ウォーターマーク画像
  20. $imgpreview=1 ; //プレビュー画像を生成するかどうか(1は生成することを意味し、その他は生成しません);
  21. $imgpreviewsize=1/2; //サムネイル比率
  22. ?>
  23. ZwelL 画像アップローダー
  24. method ="post" name="upform">
  25. ファイルをアップロード:
  26. アップロードできるファイルの種類は次のとおりです:
  27. if ($ _SERVER['REQUEST_METHOD'] == 'POST ')
  28. {
  29. if (!is_uploaded_file($_FILES["upfile"]
  30. [tmp_name]))
  31. //ファイルが存在するかどうか
  32. {
  33. echo "画像は存在しません!";
  34. exit;
  35. }
  36. $file = $ _FILES["upfile"];
  37. if($max_file_size <$file["size"])
  38. //ファイルサイズを確認します
  39. {
  40. echo "ファイルは大きすぎます!";
  41. exit;
  42. }
  43. if(!in_array( $file["type"], $uptypes))
  44. //ファイルの種類を確認してください
  45. {
  46. echo "ファイルの種類が一致しません!".$file ["type"];
  47. exit;
  48. }
  49. if(!file_exists($destination_folder ))
  50. {
  51. mkdir($destination_folder);
  52. }
  53. $filename=$file["tmp_name"];
  54. $image_size = getimagesize( $filename);
  55. $pinfo=pathinfo($file["name"]);
  56. $ftype=$pinfo['拡張子'];
  57. $destination = $destination_folder.
  58. time().".".$ftype;
  59. if (file_exists($destination) &&
  60. $overwrite != true)
  61. {
  62. echo "同じ名前のファイルが既に存在します";
  63. exit;
  64. }
  65. if(!move_uploaded_file ($filename,
  66. $destination))
  67. {
  68. echo "ファイルの移動エラー";
  69. exit;
  70. }
  71. $pinfo=pathinfo($ destination);
  72. $fname=$pinfo[basename];
  73. echo " は正常にアップロードされました

  74. ファイル名:
  75. ".$ destination_folder.
  76. $fname."
    ";
  77. echo " width:".$image_size [0];
  78. echo " length:".$image_size[1];
  79. echo "
    ; サイズ: ".$file["size"]." bytes";
  80. if($watermark==1)
  81. {
  82. $iinfo=getimagesize($destination,$iinfo);
  83. $nimage=imagecreatetruecolor($image_size[ 0]
  84. ,$image_size[1]);
  85. $white=imagecolorallocate($nimage,255,255,255);
  86. $black= imagecolorallocate($nimage,0,0,0);
  87. $red=imagecolorallocate($nimage,255, 0,0);
  88. imagefill($nimage,0,0,$white);
  89. switch ($iinfo[2] )
  90. {
  91. ケース 1:
  92. $simage =imagecreatefromgif($destination);
  93. break;
  94. case 2:
  95. $simage =imagecreatefromjpeg($destination);
  96. break;
  97. case 3:
  98. $simage =imagecreatefrompng($destination) ;
  99. break;
  100. ケース 6:
  101. $simage =imagecreatefromwbmp($destination);
  102. break;
  103. default :
  104. die("サポートされていないファイル タイプ");
  105. exit;
  106. }
  107. imagecopy($nimage,$simage,0, 0,0,0,
  108. $image_size[0],$image_size[1]);
  109. imagefilledrectangle($nimage,1,
  110. $image_size[1]-15,80,$image_size[1],$white);
  111. switch($watertype)
  112. {
  113. case 1: //ウォーターマーク文字列を追加
  114. imagestring($ nimage,2,3,$image_size[1]-15,
  115. $waterstring,$black);
  116. break;
  117. case 2: / /透かし画像を追加します
  118. $simage1 =imagecreatefromgif("xplore.gif");
  119. imagecopy( $nimage,$simage1,0,0,0,0,85,15);
  120. imagedestroy($simage1);
  121. break;
  122. }
  123. switch ($iinfo[2])
  124. {
  125. case 1:
  126. //imagegif ($nimage, $destination);
  127. imagejpeg($nimage, $destination);
  128. break;
  129. case 2:
  130. imagejpeg($nimage 、 $destination);
  131. break;
  132. ケース 3:
  133. imagepng($nimage, $destination );
  134. break;
  135. ケース 6:
  136. imagewbmp($nimage, $destination);
  137. //imagejpeg($nimage, $destination) ;
  138. break;
  139. }
  140. //元のアップロードされたファイルを上書きします
  141. imagedestroy($nimage);
  142. imagedestroy($simage);
  143. }
  144. if($imgpreview==1)
  145. {
  146. echo "
    画像プレビュー:
    ";
  147. echo "height=".($image_size[1]*$imgpreviewsize);"
  148. echo " alt="画像プレビュー:rファイル名:".
  149. $destination."rアップロード時間:" />" ;
  150. }
  151. }
  152. ?>
コードをコピー



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。