dポイントプレゼントキャンペーン実施中!

こんにちは。私は30代男性です。
先日はBMPを読み込んでUnix上でイメージ表示するプログラムを作ろうとしていましたが、ようやく完成しました。ご協力いただいた方々にお礼申し上げます。

次にチャレンジしようとしていることは、「BMPファイルに画像を書き出す。」というものです。画像は横4ピクセル・高さ256ピクセルのサイズで、とりあえず1行ずつRBG値を増やして「色の作成」の時に出てくるような長方形型の色指定用のグラデーション表示をしてみようかなと思っています。

→つまり、色の変化はRBG(0,0,0,)からRBG(255,255,255)にずらしていくという感じです(黒→灰色→白とでもいいましょうか)。
これはパレットに設定する値をfor分でループさせればいいかなと思いましたが、プログラムでBMP画像を作り出すことは無理なんでしょうか?ファイルがない状態からファイル名を指定して作るとしたら、offset値をどのように設定したらいいのかなど、わからないことだらけです。
アドバイスを頂けたらありがたいです。どうぞ宜しくお願い致します。

A 回答 (2件)

★表示するプログラムが完成したようですね。


・『黒→灰色→白』という色のグラデーションを『グレイスケール』と呼びます。
・プログラムでも BMP 画像ファイルを作り出すことは出来ます。
 今回はパレットを使いますし、256 段の変化ですので 256 色のビットマップになります。
 ヘッダ情報を順番に fwrite で出力して、パレットデータ(RGBQUAD×256個の配列)を出力します。
 この後に画像データの下位ラインから順に横 4 ピクセル× 256 ラインを出力します。
・なお、今回は 1 ピクセルは 1 バイトですので 4 ピクセル× 256 ライン=1024バイトが画像データの
 サイズになりますね。→ヘッダ情報にもこの情報をセットします。
・以上。おわり。→前回(下)の『参考URL』もどうぞ。

参考URL:http://www5d.biglobe.ne.jp/~noocyte/Programming/ …
    • good
    • 1
この回答へのお礼

Oh-orange様
いつもご回答頂き、ありがとうございます。
こちらも完成させることができました。「表示」の時よりもずいぶん簡単でした。
また何かありましたら、アドバイスを宜しくお願い致します。

お礼日時:2007/03/29 21:35

ファイルフォーマットが分かればBMPでも何でも作れますよ


fopen( )して適切なヘッダを出力後、画像データを順次書き込めばよいでしょう。
BMPファイルフォーマットに関しては参考URLに詳しく書いてあります。
確かBMPは画像の下から書き込むんだったかな。

参考URL:http://www.kk.iij4u.or.jp/~kondo/bmp/
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます!
アドバイスを参考に作ってみます。ありがとうございました。

お礼日時:2007/03/28 18:42

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