-
- //phpウォーターマーク関数
- function imageWaterMark($groundImage,$waterPos=0,$waterImage="",$waterText="",$textFont=5,$textColor="#FF0000 ")
- {
- $isWaterImage = FALSE;
- $formatMsg = "このファイル形式はまだサポートされていません。画像を GIF、JPG、または PNG 形式に変換するには、画像処理ソフトウェアを使用してください。";
- //ウォーターマーク ファイルを読み取ります
- if(!empty($waterImage) && file_exists($waterImage))
- {
- $isWaterImage = TRUE;
- $water_info = getimagesize($waterImage); //結果は配列です
- $water_w = $water_info[0];//ウォーターマーク画像の幅を取得する
- $water_h = $water_info[1];//ウォーターマーク画像の高さを取得する
- switch($water_info[2])//Getウォーターマーク画像の形式
- {
- case 1:$water_im = imagecreatefromgif($waterImage);break; //画像を PHP で認識できるエンコード処理に変換します
- case 2:$water_im = imagecreatefromjpeg($waterImage) ;break; //画像を PHP が認識できるエンコード プロセスに変換します
- case 3:$water_im = imagecreatefrompng($waterImage);break; //画像を PHP が認識できるエンコード プロセスに変換します
- }
- }
- //読み取り 背景画像を取得します
- if(!empty($groundImage) && file_exists($groundImage))
- {
- $ground_info = getimagesize($groundImage)
- $ground_w = $ground_info[0];/ /背景画像の幅を取得
- $ ground_h = $ground_info[1] //背景画像の高さを取得
- switch($ground_info[2]) //背景画像の形式を取得
- {
- case 1 :$ground_im = imagecreatefromgif($groundImage);break;
- ケース 2:$ground_im = imagecreatefromjpeg($groundImage);break;
- default:die($formatMsg) ;
- }
- }
- else
- {
- die("必須 透かしのある画像は存在しません! ");
- }
- //ウォーターマークの位置
- if($isWaterImage)//画像のウォーターマーク
- {
- $w = $water_w;
- $h = $water_h;
- $label = "画像";
- }
- else/ /テキストのウォーターマーク
- {
- $temp = imagettfbbox(ceil($textFont*2.5),0,"c:/windows/fonts/stcaiyun.ttf",$waterText);//TrueType フォントを使用してテキストの範囲を取得します
- $ w = $temp[2] - $temp[6];
- $h = $temp[3] - $temp[7];
- $label = "テキストエリア"; ($ground_w<$w) || ($ground_h<$h) )
- {
- echo "ウォーターマークを入れる画像の長さまたは幅がウォーターマーク「.$label.」より小さいため、ウォーターマークを生成できません! ";
- return;
- }
- switch($waterPos)
- {
- case 0://random
- $posX = rand(0,($ground_w - $w));
- $posY = rand(0,($ground_h) - $h));
- break;
- case 1://1 は左上を意味します
- $posY = 0;
- case 2://2 は上中央を意味します
- $posX = ($
- $posY = 0;
- $posY = 0;
- $posY = 0; ://4 は中央左を意味します
- $posX = 0;
- $posY = ($ground_h - $h) / 2;
- case 5://5 は中央中央を意味します
- $posX = ($ground_w - $w) ) / 2;
- $posY = ($ground_h - $h) / 2;
- case 6://6 は中央の右です
- $posX = $ground_w - $w; $h) / 2;
- case 7://7 は左下
- $posY = $ground_h - $h;
- case 8://8 は下中央
- $ posX = ($ground_w - $w) / 2;
- $posY = $ground_h - $h;
- case 9://9 は右下です
- $posX = $ground_w - $w; ground_h - $h;
- default://random
- $posX = rand(0,($ground_h - $h) ; posY, 0 , 0, $water_w,$water_h);//ウォーターマークを対象ファイルにコピー
- }
- else//テキストウォーターマーク
- {
- if( !empty($textColor) && (strlen($textColor)==7) )
- {
- $R = hexdec(substr($textColor,1,2));
- $G = hexdec(substr($textColor,3,2)); }
- else
- {
- die("ウォーターマークのテキストの色の形式が正しくありません。");
- }
- imagestring ( $ground_im, $textFont, $posX, $posY, $waterText, imagecolorallocate($ground_im, $R, $G, $B));
- }
- //ウォーターマーク生成後の画像
- @unlink($groundImage);
- switch($ground_info[2])// 背景画像の形式を取得します
- {
- case 1:imagegif($ground_im,$groundImage); // gif で画像を作成します。 format
- case 2 :imagejpeg($ground_im,$groundImage);break; //jpeg 形式で画像を作成します
- case 3:imagepng($ground_im,$groundImage);break; //png 形式で画像を作成します
- デフォルト: die($errorMsg);
- }
- //メモリを解放します
- if(isset($water_info)) unset($water_info); imagedestroy($water_im);
- imagedestroy($ground_im) ;
- }
- ?>
-
- php 画像アップロード コード:
- for ($_FILES['userfile']['tmp_name'] );$i++)
- {
- $upfile="./img/".($i+1).".png";//ここのパスを自分のパスに変更します
- if(move_uploaded_file($_FILES['userfile'] ['tmp_name'] [$i],$upfile)){
- imageWaterMark($upfile,9,"./shuiyin.png","Made By Chenduan",5,"#FF0000");機能: 画像ウォーターマーク (ウォーターマークは画像またはテキストをサポートします)
- * imageWaterMark($groundImage,$waterPos=0,$waterImage="",$waterText="",$textFont=5,$textColor="#FF0000")
- *パラメータ:
- * $ groundImage 背景画像、つまり透かしを入れる必要がある画像は、現在 GIF、JPG、および PNG 形式のみをサポートしています。
- * $waterPos 透かし位置、10 個の状態があり、0 はランダムな位置です。 * 1 は左上、2 は中央上、3 は右側を意味します
- * 4 は左側の中央、5 は中央の中央、6 は右側の中央を意味します
- * 7 は左側の下部を意味します。 、8 は中央の下、9 は右下です。
- * $waterImage 画像ウォーターマーク、つまりウォーターマークとして使用される画像は、現在 GIF、JPG、および PNG 形式のみをサポートしています。つまり、テキストは透かしとして使用され、ASCII コードをサポートしますが、中国語はサポートされません。
- * $textFont テキスト サイズ、値は 1 、 2、3、4 または 5、デフォルトは 5 です。値は 16 進数の色の値で、デフォルトは #FF0000 (赤) です。
- */
- echo "
- echo "いいえ。 ".($i+1)."画像の操作が成功しました
"; - }
- else{
- echo "いいえ". ($i+1)."画像をアップロードできません
"; - }
- }
- ?>
-
-
- コードをコピー
-
-
-
-
|