ホームページ > バックエンド開発 > PHPチュートリアル > PHPで漢字のドットマトリクスデータを読み取る方法

PHPで漢字のドットマトリクスデータを読み取る方法

墨辰丷
リリース: 2023-03-31 09:46:01
オリジナル
1762 人が閲覧しました

この記事では主に PHP が漢字の格子データを読み取る方法を紹介します。興味のある方はぜひ参考にしてください。

解決策:

簡体字中国語の国家標準フォント ライブラリには、第 1 レベルの中国語 3,755 文字と第 2 レベルの中国語 3,008 文字を含む 6,773 文字を含む 7,445 文字が含まれています。 2 バイト (16 ビット バイナリ) エンコーディングを使用します。

ロケーション コード: 国家標準 GB2312 は、すべての国家標準の漢字と記号が 94 × 94 のマトリックスを形成することを規定しています。この正方行列の各行を「エリア」、各列を「ビット」と呼びます。したがって、この正方行列は実際には 94 個のエリア(エリア番号はそれぞれ 0 1 ~ 94)を構成します。エリア内の漢字セットの数字(桁番号は01~94)。漢字の市外局番と位置番号を単純に組み合わせると、漢字の「位置コード」が形成されます。漢字の市外局番は、上2桁が市外局番、下2桁が位置番号です。位置コードと漢字または記号の間には 1 対 1 の対応関係があることがわかります。

内部コード: 漢字の内部コードとは、コンピュータにおける中国語の文字のエンコーディングを指します。マシンコードとロケーションコードの間にはわずかな違いがあります。現在、中国のほとんどのコンピュータ システムでは、漢字の内部コードは 2 バイトを占めており、それぞれ上位バイトおよび下位バイトと呼ばれ、これら 2 バイトと市外局番の関係は次のとおりです。コード上位 = 地域コード A0H (H は 16 進数を表します) 内符号の下位 = ビットコード A0H 例えば、漢字「あ」の地域コードは「1601」となり、地域コードとビットコードが一致します。それぞれを16進数で表すと「1001H」となりますので、内部コードは「B0A1H」となります。このうち、B0H が内部コードの上位バイト、A1H が内部コードの下位バイトです。

0 と 1 で構成される文字列を返します

<?php
/**
* 读取汉字点阵数据
*
*/
$str = "中华人民共和国";
$font_file_name = "simsun12.fon"; // 点阵字库文件名
$font_width = 12; // 单字宽度
$font_height = 12; // 单字高度
$start_offset = 0; // 偏移
$fp = fopen($font_file_name, "rb");
$offset_size = $font_width * $font_height / 8;
$string_size = $font_width * $font_height;
$dot_string = "";
for ($i = 0; $i < strlen($str); $i ++)
{
if (ord($str{$i}) > 160)
{
// 先求区位码,然后再计算其在区位码二维表中的位置,进而得出此字符在文件中的偏移
$offset = ((ord($str{$i}) - 0xa1) * 94 + ord($str{$i + 1}) - 0xa1) * $offset_size;
$i ++;
}
else
{
$offset = (ord($str{$i}) + 156 - 1) * $offset_size;
}
// 读取其点阵数据
fseek($fp, $start_offset + $offset, SEEK_SET);
$bindot = fread($fp, $offset_size);
for ($j = 0; $j < $offset_size; $j ++)
{
// 将二进制点阵数据转化为字符串
$dot_string .= sprintf("%08b", ord($bindot{$j}));
}
}
fclose($fp);
echo $dot_string;
?>
ログイン後にコピー

概要: 上記がこの記事の全内容です。皆さんの学習に役立つことを願っています。

関連する推奨事項:

php 再帰的トラバーサルにより無制限の分類を実現

php は画像サイズの変更と追加を操作しますウォーターマーク、検証コードの生成、出力および保存

memcache に基づいてリング キューを実装するための PHP メソッド

以上がPHPで漢字のドットマトリクスデータを読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート