ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルの点トレース法を使用して中国語を「描画」する

PHP_PHP チュートリアルの点トレース法を使用して中国語を「描画」する

WBOY
WBOYオリジナル
2016-07-15 13:22:57981ブラウズ

前書き:
現在、インターネットサーフィンを好む人がますます増えており、自分の個人ホームページを持つ人も増えています。さまざまな自動化ソフトウェア ツールの登場により、Web ページの作成はますます簡単になりました。しかし、特撮が普及してきたため、斬新なものは少なくなっています。もしかしたら、ある日、ウェブサイト上のカウンターがあなたのものとまったく同じであることに気づくかもしれません。ウェブページはますます成熟しています。ウェブページ上にはますます多くのものがあり、ますます豊かになっています。
質問:

  • Web ページでカウンターを追加したい場合:
    以前は、スペースプロバイダーに行ってリンクを要求するか、他の場所からアドレスをコピーしていましたが、これらは常に行われていました良いかどうかに関係なく、あなたには大きな発言力はなく、それらを 1 つずつ見つけることしかできません。
  • Web ページで、いくつかの情報を公開したい:
    情報がテキストの場合は、新しいページを作成してリンクを追加します。
    データの場合は、新しいページを作成してリンクを追加します。
    ただし、データが更新された場合は、頻繁に、場合によっては毎時間、毎分変更される可能性があります。コンピューターの前にいて、常に変更したりアップロードしたりする気はありますか? (私たちは商業的な Web サイトではありません。誰もあなたのためにお金を費やすつもりはありません。)
    そして、掲示板、チャット ルーム、フォーラム、これらは HTML と JAVASCRIPT だけでは実現できません。

より自動制御を実現するために、CGI (Common Gateway Interface) プログラムを使用してこれらの機能を実現できます。
ソフトウェア要件:
PHP: GD Library
PHPをサポートするサーバーを構成します。私は OmniHTTPd Professional を使用しています

カウンタとリアルタイムのデータ統計と公開には、写真を使用して完成させることができます。画像内にテキストを出力します。
PHP で画像を作成し、そこにコンテンツを表示するための基本的な手順は次のとおりです:

//http ヘッダー、これが GIF 画像であることをブラウザーに伝えます
header ("Content-type: image /gif");
// 絵を描くなら、まず花柄の生地が必要ですよね? 400×300 のパレット画像を作成します
$im = imagecreate (400, 300);
$black = imagecolorallocate ($im, 0, 0, 0); // デフォルトの黒の背景。
//(​​デフォルトは最初に定義された色を指します。コードのこの行の前に別の色が定義されている場合、最初に定義された色がデフォルトの背景色になります。)
$red = imagecolorallocate ($im, 255, 0, 0) ;
//レッド。これら 2 行を入れ替えると、背景が赤、テキストが黒であることがわかります。
$string="1234567890";
//描画する文字
imagestring ($im,12,10,10,$string,$red);
//(10, 10)から文字列の描画を開始します
imagepng ( $im);
// png 形式で出力するには、imagejpeg($im); または magegif($im); を使用することもできますが、後者は GD のバージョンが 1.6 より高い場合は使用できません。
imagedestroy ($im);
//終了、占有されているメモリ リソースをすべてクリアします
?>

上記の例では、400×300 の画像上に、点 (10, 10) から開始して 12 点の「1234567890」を描画します「。」この画像のサイズが 251 バイトであることに気づきましたか?他の出力形式を試すこともできます。
画像のサイズは画像内の背景以外のピクセルの数に関係し、出力されるピクセル数とは関係ありません。

しかし、問題があります。

imagestring() を使用して次の情報を出力できます:
imagestring($im,1,0,0,"abcdefghijklmnopqrstuvwxyz0123456789~!@#$%^&*()_+{}|:"
?[]' ; ,./",$red);ただし、中国語を正しく出力することはできません!!!
imagestring($im,1,0,0,"ah",$red);
表示されているものは間違いなく中国語ではありません。 ! しかし、文字化けします。
PHP のデフォルトの文字セットは UTF-8 で、簡体字中国語は GB2312 です。
この問題を解決するには、PHP に拡張モジュール php_iconv.dll をロードさせます。 (UNITの下のサフィックス名) Yes.SO)、時々正常に動作しない場合がありますが、当初はテストコードを投稿する予定でしたが、今回はエラーを避けるために動作しませんでした。しかし、最も致命的なのは、宇宙サービスプロバイダーが拡張モジュールを閉じたり、モジュールをロードする DL() 関数さえ禁止したりした場合、中国語ではバイバイしかできないということです

幸いなことに、それもあります。他の方法

変換済みのコード表に文字を出力することもできます
では、単語を一緒に描画してみませんか?
ある点の座標を結ぶ簡単な関数を習ったことがありますか?この方法は点描画法と呼ばれます。できる限り多くの点を計算し、それらを対応する座標に表示することです。
ドットマトリックスプリンターとドットマトリックス漢字について聞いたことがありますか?
漢字を出力するとき、それらはドットで表されます。

特定の座標に特定の色の点を表示する関数は次のとおりです:
int imagesetpixel (resource image, int x, int y, int color)
座標 (100,100) に白色点を表示したいとします。次のコードが必要です:

header ("Content-type: image/gif");
$image = imagecreate (400, 300);
$black = imagecolorallocate ($image, 0, 0, 0 );
$white = imagecolorallocate ($image, 255, 255, 255); // 白を定義します
imagesetpixel ($image, 100, 100, $white);
imagepng ($image);
imagedestroy ($image) ;
?>


つまり、ある漢字のすべての点の情報が得られれば、この関数を通じてその漢字を出力することができます。

ファイル chs16.fon に保存されているのは、国家標準の場所コード テーブル (情報交換用国家標準中国語文字エンコーディング基本文字セット GB-2312) です。漢字用のドットマトリクスフォントライブラリです。 (WIN98システムでは、このファイルはc:windowscommandの下にあります。UNIXシステムで使用したい場合は、大文字と小文字の区別に注意してください。そうでない場合は、記事の最後にリンクがあります。)
からのものです。 MSDOS 時代は良いことですが、それでも取り出して使用する必要があります。

chs16.fonから、漢字のドットマトリクスデータを読み込むことができます。各漢字は 16 × 16 のドットで構成されます。ストロークが通過する場合、ポイントの値は 1 で、それ以外の場合は 0 になります。各ポイントは 1 ビットを占め、8 ポイントごとに 1 バイトが構成されます。すると、漢字は (16×16÷8=32) バイト必要になります。

以下の例は、文字ドットマトリクスの表現方法を説明するためのものです。
ここでは、文字 C を示す 8×8 行列が定義されています。白い正方形は 0 で表され、黒い正方形は 1 で表されます。次に、これら 8 行のグラフィックのコードは次のとおりです。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446925.html技術記事前書き: 現在、インターネットをサーフィンするのが好きな人がますます増えており、自分の個人ホームページを持つ人も増えています。さまざまな自動化ソフトウェア ツールの登場により、Web ページの作成はますます簡単になりました。でも…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。