- - PR -
漢字からビットマップ変換について(BDF、PCF)
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-12-19 16:49
説明不足でしたが、2値のビットマップというのは、
1ビット/1ピクセルで、ビットが立っていれば黒(文字)、立っていなければ白(背景) というデータのことを言っています。 1行分が16進数ということでしたが、サイズは何バイトなのでしょうか? 1バイト/1行とすると、ぽぴ王子さんが示してくださった図のようになります。 (8ビット/1バイトですから。。) 2バイトなら縦横16ピクセルになります。
まさに2値のビットマップがそれです。 BitmapクラスのLockBits() UnlockBits() を使って、 byte*に取り出せば良いと思います。 (参考サイト:http://junki.lix.jp/csgr/002ColorDataAccess1.htm) 具体的には、
http://www.dotnet247.com/247reference/msgs/22/112817.aspx こんな感じで取り出すのですが、詳しくは上記サイトを。。 あとは(2バイトの場合)、
ということです。
これは本当なら面白いですが、勘違いの可能性があります。 (ぽぴ王子さん、図をお借りします)
上図の番号どおりではないでしょうか? ある意味、『縦』ですが、 1文字のドットの並びは『横』方向です。 確認したほうが良いかと思います。 [ メッセージ編集済み 編集者: あぶぽん 編集日時 2007-12-19 17:12 ] | ||||||||||||||||||||
|
投稿日時: 2007-12-19 18:25
法人だけど私的利用だから問題ないってことはないです。 とりあえずそれなら著作権法違反にはならないのかもしれませんが、 ライセンス違反の可能性もあります。 商用OKなフリーフォントはいっぱいあるので、 それを使ったほうがいいと思いますよ。 適当に「フリーフォント」とかで検索しましょう。 http://www.akibatec.net/freefont/ とか http://www.zukeran.org/shin/jdoc/ とかで。 ビットマップフォントを ビットデータに変えるのは、 あぶぽんさんのようにイメージに貼り付けるのが楽だと思いますが、 ドライバに依存したりするのが嫌なので 私ならフォーマットを解析します。 ---ここから脱線---
私も最初そう思ったんですが、 あきらめて普通にビットシフトしてました。 ビットマップを送るタイプの電光掲示板は 普通のディスプレイと同様な座標軸を持つ、 というの優先しているのだろうと思ってます。 でも、縦もあるんですねぇ。 調べてみたら結構ありました。 LCD系は縦が多いようです。 カラーになると横が多くなるような傾向があるようですが。 やはり用途によるのでしょうね。 [ メッセージ編集済み 編集者: れい 編集日時 2007-12-19 18:57 ] | ||||||||||||||||||||
|
投稿日時: 2007-12-20 00:10
ぽぴ王子さん、あぶぽんさん、れいさん、何回もアドバイスくださってありがとうございます。
フォント問題がありますが、まずコンバータを作ってみました。 Bitmapに文字を描画し、得られたBitmapの1つ1つのピクセルを読み取って 文字の2値を得ました。 でもBitmapに文字を描画すると文字がぼやけています。 なぜでしょう・・アンチエイリアス関係を探っているところです。
2バイトになります。電光掲示板自体はタテ16bit×ヨコ32bitです。 あとやはり『縦』のようです。 試しに文字をコンバートして電光掲示板に送信すると、 意図した並びで光りました。
ありがとうございます。 大変参考になります。 また明日会社に行ったら、 @ライセンスに違反しないフォントを使用すること。 A文字のぼやけ原因を突き止めること。 Bあぶぽんご紹介の英語サイトに挑んでみること。 を、やってみます^^ あ、すいません。れいさんの書き込みで、
とは、どういう意味ですか? 是非おしえてください。 | ||||||||||||||||||||
|
投稿日時: 2007-12-20 06:14
イメージにフォントを描画する処理はOSによっても違いますし、 もしかするとドライバによっても変わる可能性があります。 ですから
こーゆーことが起きないように、 自分でBDFなり何なりのフォーマットを調べて、 ビットマップデータを読み込むということです。 | ||||||||||||||||||||
|
投稿日時: 2007-12-20 08:21
そういうことなんですね。 早速調べてみます。 | ||||||||||||||||||||
|
投稿日時: 2007-12-20 11:33
コンバータを作られたということは、ビットの並びなどについてはご存知と いうことでしょうか。前の僕の説明は要らなかったかな。 アンチエイリアス関係は、一時的に画面のプロパティで「次の方法でス クリーン フォントの縁を滑らかにする」のチェックをはずすという方法もあり ますね。 あと、れいさんの発言からちょっと<del>のまネコ</del>インスパイヤされ てみましたが、bdf2bmp というツールがあります。BDF フォントの字形を BMP ファイルとして作成してくれます。BDF フォントのフォーマットを今から 解析するのは大変かもしれませんので、このツールを使って画像に変換 したものを改めて掲示板に使える形式にコンバートするというのも有り かもしれません。
で、参考になるでしょう。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||||||||||||||
|
投稿日時: 2007-12-20 14:17
そんな乱暴な。 Graphics.TextRenderingHint 使った方がいーと思う。 | ||||||||||||||||||||
|
投稿日時: 2007-12-20 15:11
あらホント。って調べてないのバレバレですね orz コンバータなので、どうせ恒常的に使うものでもないし自分で切り替えて あとで戻せばいいかしらん?とか脳内完結してました。 メソッド一発ならそっちの方がいいですね。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 |