ホームページ >バックエンド開発 >PHPチュートリアル >PHP画像アップロードにウォーターマークを追加する(自動的にウォーターマークを追加)_PHPチュートリアル
PHP 画像のアップロードと透かし (透かしを自動的に追加)/*これは、画像が正常にアップロードされた後、画像に透かしを自動的に追加するための完璧なコードです。これは非常に優れており、高速に追加できます。透かし効果を一つ一つ手動で。
php チュートリアルの画像のアップロードと透かし (透かしを自動的に追加)
/*
これは、画像が正常にアップロードされた後、画像に透かしが自動的に追加される完璧なコードです。これは非常に優れており、改善の余地があります。ウォーターマーク効果を 1 つずつ手動で追加する必要があります。
*/
function Upload($uploadfile,$watermark=1,$watertype=1,$content){
imagepng($nimage, $uploaddir. $uploadfilename);
foreach($uploadfile['name'] as $key=>$name) { //複数のファイルのアップロード関数
Uploadall ($uploadfile,$key,$watermark,$watertype,$content);
}
}
function Uploadall($uploadfile,$i,$watermark,$watertype,$content) {
$watermark=$watermark; //ウォーターマークを追加するかどうか (1 はウォーターマークを意味し、その他はウォーターマークを追加しません)
$watertype=$watertype; // ウォーターマークのタイプ (1 はテキスト、2 は画像)
$watercontent=$content;ウォーターマーク
if (empty($uploadfile['name'][$i])) {
die("ファイルのアップロードが選択されていません");
}
if($uploadfile['error'][$i] == 2 ) { / /HTMLの判定結果を確認
die("アップロードされたファイルが大きすぎます");
}
$allow_filemaxsize = 2048000 // 2m
$filesize = $uploadfile['size'][$i];
if($filesize > $allow_filemaxsize) {
die("アップロードされたファイルが大きすぎます");
}
$allow_filetypes = array("jpeg", "gif", "png", "jpg", "pjpeg" );// アップロードが許可されるファイルの統一リソース タイプ mimetype
$allow = false; // デフォルトでは許可されません
$mimetype = $uploadfile['type'][$i]; // の MIME ファイル タイプアップロードされたファイル
foreach($allow_filetypes as $t) {
if(strpos($mimetype, $t) !== false) {
$allow = true; //アップロード条件を満たすファイルタイプが見つかりました
Break;
}
}
if($allow = = false) {
die("アップロードされたファイルの種類は許可されていません");
}
$result = is_uploaded_file($uploadfile['tmp_name'][$i]); //アップロードアクションによって生成されたかどうかを判断します
if (!$result) {
die("アップロードされたファイルが間違っています");
}
$uploaddir = "img/" //アップロードファイルの保存ディレクトリ
if(! file_exists($uploaddir)) mkdir($uploaddir, 0777, true);//アップロード保存ディレクトリが存在しない場合は再帰的に作成されます
/**ファイルの名前を変更**/
$filetype =explode("." , $uploadfile['name'][$i]);
$filetype = array_pop($filetype);
$uploadfilename = time().".".$filetype;
$_session['filename'] = $uploadfilename ;
//end
$result = move_uploaded_file($uploadfile[' tmp_name'][$i], $uploaddir.$uploadfilename);
if($result) {
echo "ファイルが正常にアップロードされました";
}else{
switch($uploadfile['error'][$i]) {
case 1:return "アップロードされたファイルが php.ini で設定された最大値を超えています";break;
case 2:return "アップロードされたファイルが最大値を超えていますHTML で設定";break;
ケース 3: return "ファイルの一部のみがアップロードされました";break;
ケース 4;return "ファイルはアップロードされませんでした";break;
default:die("ファイルのアップロードに失敗しました");
}
}
if($watermark==1) {
$iinfo=getimagesize($uploaddir.$uploadfilename) //画像に関する情報を取得し、配列を取得します
$nimage=imagecreatetruecolor($iinfo[0], $iinfo[1]);
$white=imagecolorallocate($ nimage,255,255,255); //背景色を白に設定します
$black=imagecolorallocate($nimage,0,0,0); black
$red=imagecolorallocate($nimage,255,0,0) ; //背景色を赤に設定します
imagefill($nimage,0,0,$white) //背景色を白に設定します
switch ( $iinfo[2]) {
ケース 1:
$simage =imagecreatefromgif($uploaddir .$uploadfilename)
ケース 2:
$simage =imagecreatefromjpeg($uploaddir.$uploadfilename);
ケース 3 :
$simage =imagecreatefrompng($uploaddir.$uploadfilename);ブレーク;
ケース 6:
$simage =imagecreatefromwbmp($uploadfilename);
デフォルト:
die("サポートされていないファイル タイプ")
}
imageco py($nimage,$simage , 0,0,0,0,$iinfo['0'],$iinfo['1']);
switch($watertype) {
case 1: //ウォーターマーク文字列
imagestring($nimage,5 ,$iinfo) ['0']/2-50,$iinfo['1']-30,$watercontent,$black);
ケース 2: // 透かし画像
$simage1 =imagecreatefromgif($watercontent );サイズ = getimagesize($watercontent);
imagecopy($nimage,$simage1,$iinfo['0']/2+50,$iinfo['1']-100,0,0,$size[ 0],$ size[1]);
imagedestroy($simage1);
}
switch ($iinfo[2]) {
imagejpeg($nimage, $uploaddir.$uploadfilename); $destination ファイル名を持つ画像 $nimage からの jpeg 形式ファイル
ケース 2:
imagejpeg($nimage, $uploaddir.$uploadfilename);
ケース 3:ケース 6:
imagewbmp($nimage, $uploaddir.$uploadfilename);
imagedestroy($nimage); // 元のアップロードされたファイルを上書きします
imagedestroy($simage ; Watermark (1 はプラス、その他の数値は無効);
//ウォーターマークの種類 (1 は文字列、2 は画像); 文字列の場合はデータを書き込み、そのアドレスを書き込みます。画像の場合は画像
$picture = Upload($_files['picture'],1,2,"img/watermark.gif");// ファイルをアップロードし、アップロードされたファイルのパス名を返します
}
?>
コードをアップロード
PHP 画像のアップロードと透かし (透かしを自動的に追加)/*これは完璧な PHP ファイルのアップロード コードです。画像が正常にアップロードされると、画像に透かしが自動的に追加されます。これは非常に優れた高速な改善です。
http://www.bkjia.com/PHPjc/444863.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/444863.html
技術記事