ホームページ バックエンド開発 PHPチュートリアル PHP イメージに中国語の透かしを追加するためのコード共有_PHP チュートリアル

PHP イメージに中国語の透かしを追加するためのコード共有_PHP チュートリアル

Jul 21, 2016 pm 03:15 PM
header i php 中国語 コード 共有 追加 写真 コピー 成し遂げる 透かし

例 1

コードをコピーします コードは次のとおりです:

Header("Content-type: image/png") /*画像が表示されることをブラウザに通知します。 Output*/
$im = imagecreate(400, 300); /*画像のサイズを定義します*/
$gray = ImageColorAllocate($im, 235, 235, 235); , 128, 255);
$fontfile = "simkai.ttf";
/* $fontfile フォントのパスは、オペレーティング システムに応じて、simhei.ttf (黒体)、SIMKAI.TTF (通常のスクリプト) になります。 、SIMFANG.TTF (宋朝模倣)、SIMSUN.TTC (宋スタイル) &新宋朝)、および GD*/
$str = iconv('GB2312','UTF-8','中国語透かし' でサポートされているその他の中国語フォント); /*gb2312 文字セットを UTF-8 文字に変換*/
ImageTTFText($im, 30, 0, 100, 200, $pink, $fontfile, $str);
/* 中国語のウォーターマークを追加*/
Imagepng( $im);
ImageDestroy($im);


例 2


コードは次のとおりです: // ***** ****************** **************** //
// 関数: 画像にテキストを追加します
// パラメータ: $img 画像ファイル名
// $new_img 画像ファイル名が空の場合は保存します 画像を保存しないことを示します
// $text string content
// text_size 文字列サイズ
// text_angle フォント文字列出力角度
// text_x 文字列出力 x 座標
// text_y 文字列出力 y 座標
// $ text_font フォントファイル名
// $r, $g, $b 文字列色 RGB 値
// *********** *************** **************** //
function img_text($img, $new_img, $text, $text_size, $ text_angle, $text_x, $text_y, $text_font, $r, $g, $b){
$text=iconv("gb2312","UTF-8",$text);
Header("コンテンツタイプ: 画像/gif");
$im = @imagecreatefromstring(file_get_contents($img) ) or die ("画像を開けませんでした!");
$color = ImageColorAllocate($im, $r,$g,$b);
//ImageTTFText(int im, int size, int angle, int x, int y , intcol, string fontfile, string text):
//この関数は、TTF (TrueType フォント) フォント テキストを画像に書き込みます。
//パラメータ: size はフォントのサイズです。
// angle は時計回りに計算されたフォントの角度です。0 度は水平 (左から右)、90 度はテキストを下から上に示します。 // 2 つのパラメータ x と y はテキストの座標値です (原点は左上隅です)
//col はテキストの色です
// fontfile はフォント ファイルの名前です。
// text は文字列の内容です。
ImageTTFText($im, $text_size, $text_angle, $text_x, $text_y, $color, $text_font, $text);
if ($new_img==""): // しないでください。画像を保存、表示のみ
else:
ImageGif($im,$new_img); // 画像を保存しますが、表示されません
endif; // グラフィックを終了し、メモリ領域を解放します
? >


例 3



コードをコピーします

コードは次のとおりです:

/*
* 関数: PHP 画像透かし (透かしは画像またはテキストをサポートします)
* パラメーター:
* $groundImage 背景画像、つまり透かしを入れる必要がある画像は、現在 GIF のみをサポートしています。 JPG、PNG 形式 ;
* $waterPos ウォーターマークの位置、10 個の状態があり、0 はランダムな位置です
* 1 は左上、2 は中央上、3 は右上です。 、5 は中央の中央、6 は右側にあります
* 7 は左側の下部、8 は中央の下部、9 は右側の下部を意味します
* $waterImage 画像の透かし。つまり、透かしとして使用される画像は、現在 GIF、JPG、および PNG 形式のみをサポートします
* $waterText テキスト透かし、つまり、テキストは透かしとして使用されます。ASCII コードはサポートされますが、中国語はサポートされません
* $textFont テキストのサイズ、値は 1、2、3、4、または 5、デフォルトは 5 です。
* $textColor テキストの色、値は 16 進数の色の値、デフォルトは #FF0000 (赤) です。 * 注: GD 2.0 をサポート、FreeType、GIF Read、GIF Create、JPG、PNG をサポート
* $waterImage と $waterText を同時に使用しないことをお勧めします 使用するには、どちらかを選択するだけで、$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 形式に変換してください。”;
//ウォーターマークファイルを読み込む
if(!emptyempty($waterImage) && file_exists($waterImage))
{
$water_info = getimagesize($waterImage);
$water_w = $water_info[ 0 ];//ウォーターマーク画像の幅を取得
$water_h = $water_info[1];//ウォーターマーク画像の高さを取得
switch($water_info[2])//ウォーターマーク画像の形式を取得
{
ケース 1:$water_im = imagecreatefromgif($waterImage);break;
case 2:$water_im = imagecreatefromjpeg($waterImage);break;
case 3:$water_im = imagecreatefrompng($waterImage);break; $formatMsg);
}
}
//背景画像を読み込みます
if(!emptyempty($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;
case 2:$ground_im = imagecreatefromjpeg($groundImage);break;
case 3:$ground_im = imagecreatefrompng($groundImage);break; ($formatMsg);
}
}
else
{
die("透かしを入れる必要がある画像が存在しません!")
}
//透かしの位置
if($isWaterImage)//画像の透かし
{
$w = $water_w;
$h = $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
$posX = 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( !emptyempty($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);break;
ケース 2:imagejpeg($ground_im,$groundImage);break;
ケース 3:imagepng($ground_im,$groundImage);break;
デフォルト:die($errorMsg);
}
//释放内存
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['ユーザーファイル']['名前']);
print_r($_FILES['ユーザーファイル']);
print_r($_FILES['ユーザーファイル']['名前']);
$num をエコーし​​ます。
エコー「
」;
if(isset($id)){
for($i=0;$iif(isset($_FILES) && !emptyempty($_FILES['userfile']) && $ _FILES['userfile']['size']>0)
{
$uploadfile = “./”.time().”_”.$_FILES['userfile'][name][$i];
エコー「
」;
echo $uploadfile;
if (copy($_FILES['userfile']['tmp_name'][$i], $uploadfile))
{
echo “OK
”;
//文字水印
//imageWaterMark($uploadfile,5,”",”HTTP://www.lvye.info”,5,”#cccccc”);
//图片水印
$waterImage=”logo_ok1. gif”;//水印图片路径
imageWaterMark($uploadfile,9,$waterImage);
echo “”;
}
else
{
echo “失敗
”;
}
}
}
}
?>

for($a=0;$a<$id;$a++){
echo “文件:
” ;
}
?>



代 4
复制代代码如下:

中国語の透かしを追加
/*------------------------------------- --- ------------------------
**説明: これは、指定された画像に下部の透かしを追加するために使用されるカスタム クラスです (画像表示領域を占有しない)、オブジェクト呼び出しを作成する必要があります
** 作成日: 2007-10-09
** 更新日: 2007-10-09
** 説明: 1. gd ライブラリのサポートと iconv サポートが必要です (php5は既に含まれているためロードする必要はありません)
2. jpg/jpeg/gif/png の 3 つのタイプの画像にのみ適しており、他のタイプは処理されません
3. 画像が配置されているディレクトリの属性に注意してください。書き込み可能である必要があります
4. 呼び出し例:
$objImg = new MyWaterDown Chinese();
$objImg->FileName = "1.jpg"; ;テキスト = "HAHAKONGJIAN[url]HTTP://HI.BAIDU.COM/LYSONCN[/ url]";
$objImg->フォント = "./font/simhei.ttf"; ();
**メンバー関数:
---------- ---------------------------- -------------------- ---*/
class MyWaterDown Chinese{
var $Path = "./"; //画像が保存されているディレクトリの相対パスこのクラスを呼び出すページに相対的に配置されます
var $FileName = ""; //「1.jpg」などの画像の名前
var $Text = ""; //追加される透かしテキスト画像は中国語をサポートします
var $TextColor = "#ffffff"; //テキストの色、GIF 画像の場合、フォントの色は黒のみです
var $TextBgColor = "#000000"; bar
var $Font = "c://windows//fonts//simhei.ttf"; //フォント格納ディレクトリ、相対パス
var $OverFlag = true; //元の画像を上書きするかどうか、デフォルトは上書きしない場合は、元の画像ファイル名の後に「1.jpg」=>「1_water_down.jpg」のように自動的に追加されます
var $BaseWidth = 200;透かしテキストが追加される前に、少なくとも 200 以上である必要があります。
//----------------------------------------------- --- -------------------
//関数: クラスコンストラクター (php5.0 以降)
//パラメータ: なし
//戻り値: なし
function __construct(){;}
//----------------------------------------------------- - -------------------------
//関数: クラス デストラクター (php5.0 以降)
//パラメータ: なし
//Return:なし
function __destruct(){;}
//--------------------------------- ---- ----------------------------
//--------------- -- ------------------------
//関数: オブジェクト実行関数、画像に透かしを追加
//パラメータ: なし
//戻り値: なし
function Run ()
{
if($this->FileName == "" || $this->Text == "")
return;
//GD ライブラリがインストールされているかどうかを検出
if(false) == function_exists(" gd_info"))
{
echo "システムには GD ライブラリがインストールされていないため、画像にウォーターマークを追加できません。"
return;
//入力画像と出力画像のパス名を設定します
$ arr_in_name =explode(".",$this ->ファイル名);
//
$inImg = $this->Path.$this->ファイル名
$outImg = $inImg = $this; ->Path.$arr_in_name[0] ."_tmp.".$arr_in_name[1]; //一時的に処理された画像、非常に重要
if(!$this->OverFlag)
$outImg = $this->; Path.$arr_in_name[0]." _water_down.".$arr_in_name[1];
//画像が存在するかどうかを確認します
if(!file_exists($inImg))
return; $groundImageType = @getimagesize($inImg);
$imgWidth = $groundImageType[1];
$imgWidth return;
//画像がjpg/jpeg/gif/pngでない場合は処理されません
switch($imgType)
{
case 1:
$image = imagecreatefromgif($inImg);
$this->TextBgColor = " #ffffff"; //GIF 画像のフォントは黒のみなので、背景色は白に設定されます
break; :
$image = imagecreatefromjpeg($inImg);
break;
$image = imagecreatefrompng ($inImg);
デフォルト:
break; = @imagecolorallocate($image,hexdec(substr($this->TextColor,1,2)) ,hexdec(substr($this->TextColor,3,2)),hexdec(substr($this->TextColor,1,2) TextColor,5,2))); //テキストの色
//透かしの高さが下部で増加します
$newHeight = $imgHeight+20;
$objTmpImg = @imagecreatetruecolor($imgWidth) ,$newHeight);
$colorBg = @imagecolorallocate($objTmpImg,hexdec(substr($this->TextBgColor,1,2)),hexdec(substr($this->TextBgColor,3,2)),hexdec (substr($this->TextBgColor,5,2))); //背景色
//Fill 画像の背景色
@imagefill ($objTmpImg,0,0,$colorBg);元の画像を一時画像に
@imagecopy($objTmpImg,$image,0,0,0,0,$imgWidth ,$imgHeight);
//書き込むウォーターマークテキストオブジェクトを作成します
$objText = $this- >createText($this->Text);
//書き込むウォーターマークテキストの位置を計算
$y = $newHeight-5;
//テキストウォーターマークを書き込む
@imagettftext( $objTmpImg,10,0,$x,$y,$color,$this->Font,$objText);
//新しい画像、一時画像を生成
switch($imgType)
{
case 1:
imagegif ($objTmpImg,$tmpImg);
ケース 2:
imagejpeg($objTmpImg,$tmpImg);
デフォルト:
return; ;
break;
}
//リソースを解放
@imagedestroy($objTmpImg);
//ファイルの名前を変更します
if($this->OverFlag)
//元の画像
@unlink($inImg);
@rename($tmpImg,$outImg);
else
{
//元の画像を上書きしません
@rename($tmpImg,$outImg); }
//------------------------ -------------
//関数: 透かしテキストオブジェクトを作成する
//パラメータ: なし
//Return: 作成されたウォーターマーク テキスト オブジェクト
function createText($instring)
{
$outstring =""
for($i=0;$) i<$max;$i++)
{
$h=ord($instring[$i]);
if( $h>=160 && $i<$max-1)
{
$outstring .= "& #".base_convert(bin2hex(iconv("gb2312","ucs-2",substr($instring,$i, 2))),16,10).";";
$i++;
}
else
{
$outstring .= $instring[$i]
}
}
$outstring
}
}/ /class

;



http://www.bkjia.com/PHPjc/326177.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/326177.html

技術記事

例 1 次のコードをコピーします。 ?php Header("Content-type: image/png"); /*画像を出力することをブラウザに通知*/ $im = imagecreate(400, 300);画像のサイズ* /$gray = ImageCol...





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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

アクション中のPHP:実際の例とアプリケーション アクション中のPHP:実際の例とアプリケーション Apr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPの永続的な関連性:それはまだ生きていますか? PHPの永続的な関連性:それはまだ生きていますか? Apr 14, 2025 am 12:12 AM

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHP対その他の言語:比較 PHP対その他の言語:比較 Apr 13, 2025 am 12:19 AM

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHP:データベースとサーバー側のロジックの処理 PHP:データベースとサーバー側のロジックの処理 Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPの目的:動的なWebサイトの構築 PHPの目的:動的なWebサイトの構築 Apr 15, 2025 am 12:18 AM

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

See all articles