画像に透かしを追加するための PHP クラス
コードをコピー コードは次のとおりです:
/*
* 関数: PHP 画像透かし (透かしは画像またはテキストをサポートします)
* パラメーター:
* $groundImage 背景画像、つまり透かしは必須です。現在、画像は GIF、JPG、PNG 形式のみをサポートしています。
* $waterPos ウォーターマークの位置、10 個の状態があり、0 はランダムな位置です。
* 1 は左上、2 は中央上、3 は上です。中央右;
* 4 は左側の中央、5 は中央の中央、6 は右側の中央、7 は左側の下部、8 は中央の下部、9 は中央の中央です。右下。waterImage 透かしとして使用される画像である画像透かしは、現在 GIF、JPG、PNG 形式のみをサポートします。
* $waterText 透かしとしてテキストを使用し、ASCII コードをサポートします。
* $textFont テキストのサイズ、値は 1、2、3、4、または 5、デフォルトは 5 です。
* $textColor テキストの色、値は 16 進数の色の値です。
*
* 注: GD 2.0 をサポート、FreeType、GIF 読み取り、GIF 作成、JPG、PNG をサポート
*同時に、そのうちの 1 つを選択し、最初に $waterImage を使用します。
* $waterImage が有効な場合、パラメータ $waterString、$stringFont、および $stringColor は無効になります。
* 透かし入り画像のファイル名は$groundImageと同じです。
* 著者:longware @ 2004-11-3 14:15:13
*/
function imageWaterMark($groundImage,$waterPos=0,$waterImage=””,$waterText=””,$ textFont=5,$textColor=”#FF0000″)
{
$isWaterImage = FALSE;
$formatMsg = “このファイル形式はまだサポートされていません。画像を GIF に変換するには画像処理ソフトウェアを使用してください、JPG、PNG形式。”; $water_info = getimagesize($waterImage);
$water_w = $water_info[0];// ウォーターマーク画像の幅を取得
$water_h = $water_info[1];//ウォーターマーク画像
switch($water_info[2])//ウォーターマーク画像の形式を取得
{
case 1:$water_im = imagecreatefromgif($waterImage);break;
ケース 2:$water_im = imagecreatefromjpeg($waterImage);break;
case 3:$water_im = imagecreatefrompng($waterImage);break;
デフォルト:die($formatMsg);
//背景画像を読み取ります <(> IF (! Emptyempty ($ GROUNDIMAGE) && FILE_EXISTS ($ Group))
{
$ Group_Info = GetimageSize ($ GROUNDIMAGE);
$ GROUND_W = $ GROUND_INFO [0]; // 背景画像の幅を取得
$ground_h = $ground_info[1];// 背景画像の高さを取得
switch($ground_info[2] )//背景画像の形式を取得します
{ > case 1:$ground_im = imagecreatefromgif($groundImage);break;
case 2:$ground_im = imagecreatefromjpeg($groundImage);break; 3:$ground_im = imagecreatefrompng($groundImage) ;break;
default:die($formatMsg);
} }
else
die("透かしを入れる必要のある画像が存在しません! ”);
} $water_h ;
$label = "画像"
}
else//テキストウォーターマーク
{ $temp = imagettfbbox(ceil($textFont*5),0 ,"./cour .ttf",$waterText);//TrueType フォントを使用してテキストの範囲を取得します
$w = $temp[2] - $temp[6];
$h = $temp[ 3] - $temp [7];
unset($temp);
$label = "テキストエリア";
if( ($ground_w<$w) || ($ground_h< ;$h) )
{
echo "ウォーターマークを挿入する必要がある画像の長さまたは幅がウォーターマーク ".$label." より小さいため、ウォーターマークを生成できません。";
return;
switch($waterPos)
{
case 0://random w)) ;
$posY = rand(0,($ground_h - $h)) ;
ブレーク;
ケース 1://1 は左上です
$posX = 0;
ケース 2://2 は上です。 -centered Break; 🎜> case 3://3 が右側の先頭です
$posY = 0;
case 4:/ /4 は左側です
$posX = 0;
$posY = ($ground_h - $h) / 2;
ケース 5://5 は中央にあります
$posX = ($ground_w - $ w)/2; > $ posy = ($ GROUND_H-$ h)/2;
ブレーク
ケース 6: // 6 は右中央です。 🎜> $ POSX = $ Ground_w-$ $ $ w;
$posY = ($ground_h - $h) / 2;
7://7 の場合は左下です。 > $posX = 0;
$posY = $ground_h - $h;
ケース 8://8 は下中央になります
$posX = ($ground_w - $w) / 2 ;
$posY = $ground_h - $ h;
ケース 9://9 は右下です
$posX = $ground_w - $w; $ground_h - $h;
ブレーク;
デフォルト://ランダム
$posX = rand(0,($ground_w - $w)); ground_h - $h)) ブレーク ;
}
//画像のカラーブレンドモードを設定します
imagealphablending($ground_im, true);
if($isWaterImage)//画像ウォーターマーク
{ ground_im, $water_im , $posX, $posY, 0, 0, $water_w,$water_h);//ウォーターマークをターゲット ファイルにコピーします!emptyempty($textColor) && (strlen($textColor)==7) )
{ $ R = hexdec(substr($textColor,1,2));
$G = hexdec(substr ($ TextColor, 3,2));
$ B = HexDEC (Substr ($ TextColor, 5)) ; 正しい!”);
//透かし後の画像を生成
@unlink($groundImage)
switch($ground_info[2])//背景画像の形式を取得します
{
ケース 1:imagegif($ground_im,$groundImage); ブレーク
ケース 2:imagejpeg($ground_im,$groundImage); ブレーク; ケース 3:imagepng($ground_im,$groundImage); );
}
//メモリを解放します
if(isset($water_info)) unset($water_info);
if(isset($water_im)) imagedestroy($water_im );
unset($ground_info);
imagedestroy($ground_im)
}
//———————————————————— —————
$id=$_REQUEST['id'];
$num = count($_FILES['userfile']['name']);
print_r($ _FILES['ユーザーファイル']);
print_r($_FILES['ユーザーファイル']['名前']);
echo "
"; isset($id)){
for($i=0;$i<$id;$i ){
if(isset($_FILES) && !emptyempty($_FILES[ 'userfile' ]) && $_FILES['userfile']['size']>0)
{
$uploadfile = “./”.time().”_”.$_FILES['userfile '][ name][$i];
echo "
";
echo $uploadfile;
if ($_FILES['userfile']['tmp_name'], $ Uploadfile))
{ echo “OK
”;
//テキスト透かし
//imageWaterMark($uploadfile,5,"","HTTP:/ /www.lvye.info ",5,"#cccccc");
//画像のウォーターマーク
$waterImage="logo_ok1.gif";//ウォーターマーク画像のパス
imageWaterMark($uploadfile ,9,$waterImage) ;
echo “”; 🎜> echo “失敗
”;
}
}
}
} method="POST">
for($a=0;$a<$id;$a ){
echo "ファイル: < input name="userfile[] ” type="file">
";
🎜>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
