ホームページ  >  記事  >  バックエンド開発  >  中国語ウォーターマークを実装するためのGDライブラリ関数_PHPチュートリアル

中国語ウォーターマークを実装するためのGDライブラリ関数_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:38:54960ブラウズ

$im = imagecreatetruecolor(100,100);//新しいトゥルーカラー画像を作成します

$white = imagecolorallocate($im,255,235,255);//画像に色を割り当てる これは、ペイントするときに最初に指定された画像の識別子を割り当てる必要があるとは考えたこともありませんでした。 ..この関数は、imagefill 関数とよく混同されます。

imagefill($im,0,0,$white) //領域の塗りつぶし

;

$black = imagecolorallocate($im,250,50,50);//画像に色を割り当てる

imagerectangle($im,5,5,50,50,$black);//長方形を描画します

header("Content-type: image/jpeg"); //ヘッダーを送信し、imagejpeg でブラウザに直接画像を出力します。

imagejpeg($im,ImageName,100);//画像、名前、画質を出力します

imagedestroy($im);//画像に関連付けられたメモリを解放します。 image は、イメージ作成関数によって返されるイメージ識別子です

?>

GDライブラリを活用して「中国語ウォーターマーク」を実装

公開時刻: 2006-12-29 20:50 著者: hy0kl 出典: PHPChina オープンソースコミュニティポータル

まず第一に、lmhllr 兄弟に特別な感謝の意を表したいと思います。彼の指導がなければ、私はまだ情報を探しているかもしれません…

まず初めに、私は初心者であり、GD ライブラリについての知識がほとんどないことをお断りしておきます ^_^

php+GDライブラリで画像に「中国語透かし」を追加できるとネットで見かけたので、GDライブラリ

を勉強し始めました。

そこで、ダウンロードした情報を元に、PHP描画を実現できるスクリプトを修正してみました(笑)

その後、imagestring()関数を使用して画像に英語の「ウォーターマーク」を追加しましたが、それを使用して「中国語のウォーターマーク」を追加しようとすると、文字化けが表示されました。

そこで私は再びコード化けを解決する道を歩み始めました。

長い間満足のいく答えが得られなかったので、あきらめました

最近、lmhllr さんの個人的な署名が非常に特殊であることが分かりました。質問してみて、その理由がようやく分かりました。imagettftext() 関数の文字セットが UTF-8 の場合、GD ライブラリは中国語をあまりサポートしていません。直接渡せます

つまり、gb2312 の文字セットを UTF-8 文字に変換する必要があります。これを実現するには、iconv() 関数を使用できます。この関数は、コレクター版の PHP マニュアルには記載されていません。 PHP の公式 Web サイト http://cn.php.net/manual/zh/ref.iconv.php ですが、残念ながらすべての関数に中国語の翻訳があるわけではありません。私の E 言語は苦手なので、例を見て推測するしかありません。 lmhllr のスクリプト。この関数は gb2312 文字を UTF-8 文字に変換し、「中国語のウォーターマーク」を追加する関数を呼び出します。

私のマシンでテストした結果、GD でサポートされている中国語フォントには、simhei.ttf (Heold)、SIMKAI.TTF (Italic)、SIMFANG.TTF (Imitation Song)、SIMSUN.TTC (Song style & New Song style) が含まれることがわかりました。もちろん、スクリプトに置き換えることができるのは英語の名前だけです。オペレーティング システムを作成したわけではありません。

この投稿が私と同じ状況にいる同志たちにインスピレーションを与えることができれば幸いです^_^

以下は簡単なテスト スクリプトです。

[php]

Header("Content-type: image/png") /*画像を出力することをブラウザに通知*/

$im = imagecreate(400, 300) /*画像のサイズを定義*/

$gray = ImageColorAllocate($im, 235, 235, 235);

$pink = ImageColorAllocate($im, 255, 128, 255);

/*

$fontfile = "C:WINDOWSFontsSIMHEI.TTF";

申し訳ありませんが、この文は貼り付けた後に送信するとすぐに失われます。何が起こったのかわかりません。テストしたい友達は、コメントを残して今すぐテストしてください。

*/

/* $fontfile フォントのパスは、オペレーティング システムに応じて、simhei.ttf (Helvetica)、SIMKAI.TTF (Kaili)、SIMFANG.TTF (Imitation Songdynasty)、SIMSUN.TTC (Song Empire & New) になります。宋代) など GD は中国語フォントをサポートします*/

$str = iconv(GB2312,UTF-8,中国語ウォーターマーク!!!) /*gb2312 文字セットを UTF-8 文字に変換します*/

ImageTTFText($im, 30, 0, 50, 140, $pink, $fontfile, $str);

/* 中国語の透かしを追加 */

Imagepng($im);

ImageDestroy($im);

?>[/php]

OK、今日はこれで終わりにします。これが私の最初の質の高い投稿になることを願っています。

この例の効果は以下のとおりです。改めてlmhllrさんに感謝の意を表したいと思います!!!

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

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/486450.html技術記事 $im = imagecreatetruecolor(100,100);//新しいトゥルーカラー画像を作成 $white = imagecolorallocate($im,255,235,255);//私のデザインの常識とは違う画像に色を割り当てます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。