ホームページ バックエンド開発 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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

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

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

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

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

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

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

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

See all articles