これは、赤で色付けされた5x5ビットマップの16進ダンプです。
私の質問は、ビットマップの色をたとえばに変更するために、(ペイントなどのツールを使用せずに)16進値のみを変更するにはどうすればよいですか?緑の色(0,255,0)
またはそのことについての色は?
ある程度、ペイントのようなツールは、ビットマップを保存するために、描画したピクセルをどのように16進数に変換しますか?
BMPのドキュメントは次のとおりです。 https://en.wikipedia.org/wiki/BMP_file_format#Pixel_array_.28bitmap_data.29
短い形式は次のとおりです。
DIBヘッダーセクション内で、ピクセル寸法の2つの値5と、24ビットカラー(RGB)のhex(18)の値を確認できます。
特に興味深いのは、ウィキの「例1」です。これは、ここにあるものと同様の2x2画像のHEXダンプを示しています。いくつかの注意:
16進ダンプとドキュメントに基づいて、画像は各ピクセルを非圧縮RGBトリプレットとして保存しています。最初のピクセルはトリプレット24 1c ed
ですが、これは逆になっているため、実際には赤色であるhex(ed1c24)になります。 5ピクセルのすべての行の後に00
パッドがあることに注意してください。ドキュメントには、これは「バイトアラインメント」用であると記載されています。
したがって、ピクセルを赤から青に変更するには、トリプレットの1つを24 1c ed
からed 1c 24
に変更します。
ソフトウェアに関しては、16進エディターでファイル(またはコピー)を開き、変更を加えて保存します。テキスト記号「0」は2進数の0と同じではないため、「テキスト編集モード」でテキストエディタを使用するだけでは不十分です。
オープンソースのNotepad ++には、プラグインを介した16進編集機能があります。
Paintがどのように画像を作成するかというより大きな問題に関しては、プログラムはドキュメントと標準を使用してプロセスを自動化します。そのほとんどは慣例の問題です。 「画像ストリーム」(ピクセルデータ)は、非圧縮画像ファイルに見られるように同様の方法でメモリに保存および操作されます。