プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。私は30代の男性です。
C言語でビットマップ形式で保存された白黒の画像を、Unix上で白の全角スペースなどを使って表示させるにはどのようにしたらよろしいでしょうか?

例えばbmpファイルの画像が下図のように数字の「1」を表すものなら、それをUnix上で白の全角スペースで表すといった感じにです。

 ■
■■
 ■
 ■
 ■
■■■

画像ファイルを扱うということ自体が初めてですので、参考になるテキストやサイトなどもお教え頂けるとありがたいです。
どうぞ宜しくお願い致します。

A 回答 (3件)

http://ja.wikipedia.org/wiki/Windows_bitmap

bmpを独自に読んで独自に表示するプログラムを自分で書くのは、ハッキリ言って「無謀」です。

ヘッダ情報で圧縮か無圧縮か、ピクセルの色数が幾つか、パレットがあるかないか、あるとしたらサイズは幾つか、とか、かなり複雑です。

bmpファイルを読み込んで、ファイルヘッダ情報に従って、イメージ情報をメモリ(画像用バッファ)に展開してくれるunixのC言語ライブラリルーチンとかがネット上に転がってると思うので、それを探して来て使って下さい。

「メモリ(画像用バッファ)に展開されたデータを参照して、白の全角スペースを書くか書かないか」ってプログラムなら、そんなに悩まない筈ですし。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

お礼日時:2007/03/16 20:53

この白黒の画像を保存するプログラムは、


自分で作られたものなのでしょうか?
もしくは、そのプログラムのソースは見れるのですか?

ソースが見れるのであれば中のデータがどのようになっている
かわかると思うので、データ部分を読み出して、
1ならば■、0ならば_を表示して、
横のビット数で折り返していけば期待通りのことができると思います。

もし、ソースがないのであった、以下の条件なら、

一般的にビットマップ、bmpファイルというのであれば、
ほとんどの場合「Windows bitmap」だと思います。
10~13バイト目を読み込んでそこからが、
データなので、それで並べてみてください。
18~19バイト目:横のピクセル数
20~21バイト目:縦のピクセル数
になるので、後は同じです。

白黒じゃなかった場合は少し難しいですが、何とかなると思います。
「Windows bitmap」じゃなかったり、無圧縮でなかったりした場合は、
私にはわかりません。

参考URL:http://ja.wikipedia.org/wiki/Windows%E3%83%93%E3 …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
バイトに入っている情報、参考にさせて頂きます。ありがとうございました。

お礼日時:2007/03/16 20:54

★サイトを紹介します。


http://www.sm.rim.or.jp/~shishido/readbmp.html→『BMPファイルからDIBを読み込む』
http://www.sm.rim.or.jp/~shishido/dib256.html→『256色DIB』
http://www.sm.rim.or.jp/~shishido/dib2.html→『DIB操作関数を作る』
※上記のリンクは全て同じサイト内のページです。

★本を紹介します。
・『ゲームプログラミング練習帳』という本を紹介します。→http://www.amazon.co.jp/gp/product/4875934424
・『ゲームプログラミング練習帳』の第1章に描画・保存・読み込みの基本が載っています。
・買う場合は税込みで 1995 円です。→上記のサイトが『本』の著者のホームページです。

関連ヘッダ:
・BITMAPFILEHEADER
・BITMAPINFO
・RGBQUAD

・上記で紹介しているのは、すべて Windows 環境を対象にしています。
・ヘッダファイルなどは、自作して白黒(2色?)のビットマップのベタデータを
 読み込んで処理して下さい。→読み込めないと処理できませんので、『BMP』
 のファイル構造を最初に理解して下さい。
・以上。おわり。→構造体をキーワードに検索するとたくさん情報が出ますよ。

参考URL:http://oshiete1.goo.ne.jp/qa2659364.html
    • good
    • 0
この回答へのお礼

Oh-Orange様
いつもお世話になっております。ご回答ありがとうございます。上記サイト、参考になります。本についても余力があれば購入したいと思います。どうもありがとうございました。

お礼日時:2007/03/16 20:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!