- PR -

漢字からビットマップ変換について(BDF、PCF)

投稿者投稿内容
moco
ベテラン
会議室デビュー日: 2006/05/01
投稿数: 54
投稿日時: 2007-12-19 09:40
いつもお世話になっております。

C#にて、次のことをしたいと考えています。
--------------------------------------------------------------------
C#で作成のWindowsアプリから、電光掲示板と通信し、任意の文字を表示。
但し、電光掲示板自身は表示する漢字データを持っておらず、
漢字をビットマップイメージにて電光掲示板に与えないといけない。
--------------------------------------------------------------------

ここで困っているのが、
C#でどのようにして漢字からビットマップイメージに変換するかです。
変換にはBDFフォントや、PCFフォントを使用すれば良いことが分かりましたが。
手段が分かりません。

申し訳ありませんが、どなたかアドバイスよろしくおねがいします。



[ メッセージ編集済み 編集者: moco 編集日時 2007-12-19 09:45 ]
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2007-12-19 09:52
1.フォントを入手する。
2.フォントをインストールする。
3.画面(もしくはビットマップ)に文字を表示する。
4.各ピクセルの色を調べる。
5.電光掲示板用のデータを生成する。

手順にすると上のような感じ。
別に難しい話は何処にもないと思うんだけど、何が分からないの?
moco
ベテラン
会議室デビュー日: 2006/05/01
投稿数: 54
投稿日時: 2007-12-19 10:00
みかぼしさんで宜しいでしょうか?
素敵な名前ですね。 *^^*

こんなに早くアドバイスいただけて凄くうれしいです。
アドバイスの手順上でいくと、
1項では、これがBDF,PCFにあたるのですか?
2〜5項では、ごめんなさい。。無知な私なものでイメージが湧きません。

ごめんなさい。。
あぶぽん
大ベテラン
会議室デビュー日: 2005/10/20
投稿数: 205
投稿日時: 2007-12-19 10:55
mocoさん、こんにちは。

最近、偶然、Windowsのフォントからビットマップを得るというツールを作りました。
(もちろん、フリーのフォント用です)

僕の場合は、単純にGraphics#DrawString()とかしましたけど、
その程度のものでよろしければ、お答えできるかと思います。

 1.ビットマップを新規生成してそのGraphicsを得ます。

 2.Graphics#DrawString()で、漢字をピットマップに描画します。

 3.Bitmap#Save()で、ビットマップを保存します。

http://dobon.net/vb/dotnet/graphics/drawstring.html
http://dobon.net/vb/dotnet/graphics/pictureboximageanddrawimage.html

System.Windows.Forms.TextRenderer.DrawText()を使っても良いかと思います。

フォントに関しては、
http://dobon.net/vb/dotnet/system/getinstalledfonts.html

を参考にしました。
あぶぽん
大ベテラン
会議室デビュー日: 2005/10/20
投稿数: 205
投稿日時: 2007-12-19 11:10
ビットマップの2値化もしました。

http://www.dotnet247.com/247reference/msgs/22/112817.aspx
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-12-19 11:17
引用:

mocoさんの書き込み (2007-12-19 09:40) より:

C#で作成のWindowsアプリから、電光掲示板と通信し、任意の文字を表示。
但し、電光掲示板自身は表示する漢字データを持っておらず、
漢字をビットマップイメージにて電光掲示板に与えないといけない。


学校の課題とかじゃないですよね?
その電光掲示板の仕様は把握されてるんでしょうか。
ビットマップイメージに変換したとしても、そこからまた電光掲示板が
求めているフォーマットに変換する必要があると思いますし。

引用:

C#でどのようにして漢字からビットマップイメージに変換するかです。
変換にはBDFフォントや、PCFフォントを使用すれば良いことが分かりましたが。
手段が分かりません。


BDF/PCF フォントってあの X で使われてるアレ?
電光掲示板が PCF フォントを入力として受け付けるってことでいいんで
しょうか。
ビットマップイメージに変換する部分はあぶぽんさんが書かれている方法
で大丈夫だと思います(セーブする必要はなさそうですが)。
問題はそこからどうやって PCF フォントに変換するか、ですが。
その辺は便利なツールがあるとは思えな…いやあるかもしれないけど
フォーマットも公開されてるはずなので、調べて自分で作るしかないんじゃ
ないでしょうかね。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2007-12-19 11:25
引用:

mocoさんの書き込み (2007-12-19 10:00) より:
1項では、これがBDF,PCFにあたるのですか?


そこからか・・・

BDFフォントやPCFフォントは文字を点の集合として表現したフォントデータの一種で、このようなフォントをビットマップフォントといいます。一般にパソコンで用いられているのは、文字を曲線の集合として表現したベクタフォントです。

なぜビットマップフォントが必要なのかと言いますと、ベクタフォントを使って低解像度で画数の多い文字を表示しようとすると、文字がつぶれて判別不能になってしまうからです。そこで低解像度用に最適化したビットマップフォントが必要になってきます。一文字のサイズが36ピクセル程度ならMSゴシックなどのベクタフォントを元に生成しても文字がつぶれることはほとんどありませんが、24ピクセルとかだと「薔薇」とか「鬱」といった文字はつぶれてしまうでしょう。

低解像度用に最適化したビットマップフォントは組み込み用に販売されているので、必要であればそういったものを購入することになるかと思います。

#でもフォントを購入するぐらいなら、フォントデータを持つ電光掲示板を
#購入するか、電光掲示板の変わりに液晶パネルでも使った方が良いと思う。
れい
ぬし
会議室デビュー日: 2005/11/01
投稿数: 346
投稿日時: 2007-12-19 12:24
引用:

C#でどのようにして漢字からビットマップイメージに変換するかです。



フォントファイルのフォーマットを調べて自分で読み込むか、
イメージに書いて1ドットずつ調べるしかありません。
もちろんビットマップフォントから作るのがよいです。

ですが、気になるのはライセンスです。
Windowsのフォントを使って大丈夫なのですか?
RICOHはダメだと言っていた気がします。
ライセンス上問題の無いフォントを持っているのでしょうか?

私は甕星さんの言うようにフォントを買うのがよいと思います。

スキルアップ/キャリアアップ(JOB@IT)