![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんにちは。私は30代男性です。
先日はBMPを読み込んでUnix上でイメージ表示するプログラムを作ろうとしていましたが、ようやく完成しました。ご協力いただいた方々にお礼申し上げます。
次にチャレンジしようとしていることは、「BMPファイルに画像を書き出す。」というものです。画像は横4ピクセル・高さ256ピクセルのサイズで、とりあえず1行ずつRBG値を増やして「色の作成」の時に出てくるような長方形型の色指定用のグラデーション表示をしてみようかなと思っています。
→つまり、色の変化はRBG(0,0,0,)からRBG(255,255,255)にずらしていくという感じです(黒→灰色→白とでもいいましょうか)。
これはパレットに設定する値をfor分でループさせればいいかなと思いましたが、プログラムでBMP画像を作り出すことは無理なんでしょうか?ファイルがない状態からファイル名を指定して作るとしたら、offset値をどのように設定したらいいのかなど、わからないことだらけです。
アドバイスを頂けたらありがたいです。どうぞ宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
★表示するプログラムが完成したようですね。
・『黒→灰色→白』という色のグラデーションを『グレイスケール』と呼びます。
・プログラムでも BMP 画像ファイルを作り出すことは出来ます。
今回はパレットを使いますし、256 段の変化ですので 256 色のビットマップになります。
ヘッダ情報を順番に fwrite で出力して、パレットデータ(RGBQUAD×256個の配列)を出力します。
この後に画像データの下位ラインから順に横 4 ピクセル× 256 ラインを出力します。
・なお、今回は 1 ピクセルは 1 バイトですので 4 ピクセル× 256 ライン=1024バイトが画像データの
サイズになりますね。→ヘッダ情報にもこの情報をセットします。
・以上。おわり。→前回(下)の『参考URL』もどうぞ。
参考URL:http://www5d.biglobe.ne.jp/~noocyte/Programming/ …
Oh-orange様
いつもご回答頂き、ありがとうございます。
こちらも完成させることができました。「表示」の時よりもずいぶん簡単でした。
また何かありましたら、アドバイスを宜しくお願い致します。
No.1
- 回答日時:
ファイルフォーマットが分かればBMPでも何でも作れますよ
fopen( )して適切なヘッダを出力後、画像データを順次書き込めばよいでしょう。
BMPファイルフォーマットに関しては参考URLに詳しく書いてあります。
確かBMPは画像の下から書き込むんだったかな。
参考URL:http://www.kk.iij4u.or.jp/~kondo/bmp/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Visual Basic(VBA) ChatGPTに作らせたい Excel VBA 1 2023/04/05 19:56
- その他(プログラミング・Web制作) uwscとWinShotを使いスクリーンショットを撮る 1 2022/06/30 21:15
- その他(OS) Windowsで大量の画像サイズを半自動で変更する方法 6 2023/02/17 08:45
- 画像編集・動画編集・音楽編集 Google Earth Pro 高速道路上空を一定の速度で飛ぶツアー動画の作り方は?? 1 2022/06/01 15:10
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- その他(開発・運用・管理) フォルダの中にファルダを作成してファイルを格納するバッチコマンド 1 2022/06/30 11:39
- C言語・C++・C# 画像の画素値を変えるC言語のプログラムで指定された画像の中に白い三角形を右上に表示させるにはどのよう 3 2022/10/30 01:16
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
fwprintf()について
-
CSVファイルを任意の場所に出力...
-
(VBA)書式が変更されてしまい...
-
raw形式からbmp形式への書き込...
-
外国語とCSVについて
-
VC++でUTF-8のファイルを出力し...
-
テキストファイルに改行コード...
-
シェルコマンドの 2>&1 とはど...
-
ファイル出力の場所を指定
-
アプリを実行すると、作成者を...
-
AccessVBA複数レポート条件毎に...
-
C++/CLIにて、System.String^型...
-
フォルダにあるPDF情報の抽出(VBA)
-
geany(puppy linux)のプログラ...
-
二次元配列をクリップボードに...
-
C言語での縦方向のファイル出力...
-
C言語による10進数→16進数変換...
-
UNIX系のコマンドで2つの時刻...
-
構造体のファイル出力
-
コマンド(例えばls)の出力結果...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Paiza Cloudです。 どうやれば...
-
Paiza Cloudです。学籍番号と氏...
-
Acccess レポートをグループ別...
-
ファイル出力の場所を指定
-
コマンド(例えばls)の出力結果...
-
VC++でUTF-8のファイルを出力し...
-
テキストファイルに改行コード...
-
シェルコマンドの 2>&1 とはど...
-
VBA でメモ帳へ保存する際の保...
-
ファイル形式またはファイル拡...
-
fortranのtxtファイル出力書式...
-
CSV形式に変換
-
printfだと出力されるのにfprin...
-
C++ fprintf_sの使い方がわからん
-
c言語の質問です。 ランダムに4...
-
Wordマクロで指定したフォルダ...
-
C++/CLIにて、System.String^型...
-
pcap形式データをテキストへ抽出
-
二次元配列をクリップボードに...
-
raw形式からbmp形式への書き込...
おすすめ情報