24ビットbmpイメージで青い領域を探したい。青色のチャンネルを見つけるにはどうすればいいですか?青色のチャンネルにアクセスする方法は?bmp 24ビットファイル形式の青色チャネル
答えて
24ビットピクセル(24bpp)形式は16,777,216の異なる色をサポートし、 と3バイトあたり1ピクセル値を格納します。各ピクセル値は、ピクセルの赤、緑、青のサンプル(RGBAX 表記で8.8.8.0.0)の を定義します。具体的には、青色、緑色、赤色の順で、各サンプルは で8ビットです。
... here。
24ビットのビットマップ(.bmp)イメージのヘッダーは54バイトです。その後、ピクセルデータが来る。ピクセルごとに、青、緑、赤の順に3バイトが使用されます。
これを確認するには、1x1ピクセルのイメージをペイントで作成し、その1ピクセルを青色にします。ヘキサエディタで.bmpファイルを見ると、55バイト目にはFF(青色)の値が表示され、その後の2は00(緑色でない、赤色ではありません)と表示されます。もちろん、すべてのバイトを読み込むCプログラムを書くと、これも見ることができます。 55バイト目から最後までの値を出力すると、同じ値が表示されます。
ピクセルデータを整列させる必要があります。これはストライドと呼ばれます。ストライドは以下のように計算される:3x3のBMPで
stride = (width * bpp)/8;
、ストライドがされる(3 * 24)/ 8 = 9この値は、(この場合は12)4で割り切れる数に切り上げされる必要がありますしたがって、ビットを正しく揃えるには、1行に3バイト余分のバイトが必要です。 4x4のBMP、ストライドのために
FF 00 00 FF 00 00 FF 00 00 00 00 00
FF 00 00 FF 00 00 FF 00 00 00 00 00
FF 00 00 FF 00 00 FF 00 00 00 00 00
=(4 * 24)/ 8 = 12 12は、4で割り切れるので、余分はありません。すべてのバイトが青であるのであれば、54バイトの後にあなたが持っています必要なバイト数。 5x5 bmpの場合、ストライド=(5 * 24)/ 8 = 15なので、1行につき1つの余分なバイトが必要です。
bmpファイル形式の詳細については、this wikipedia pageを参照してください。お役に立てれば!
- 1. SIPチャネル形式。アスタリスク
- 2. gridcontrol 24時間形式のsyncfusion
- 3. 24時間形式のhtml時間フィールド
- 4. 24時間形式のUIDatePicker戻り値
- 5. 24時間形式の表示時間
- 6. Moment.js 24時間制の24時間形式
- 7. 24時間形式をSybase日付形式で追加する
- 8. 24時間形式で時間形式を変更する
- 9. hh:mm aa(12時間形式)HH:mm(24時間形式)で変換
- 10. LWJGL 2.9 - 青色のピクセル形式がアクセラレートされていません
- 11. ブートストラップ3 Datepicker v4 Docs 24時間形式
- 12. 角型日時 - ローカル24時間形式
- 13. Jqgrid日付列(24時間形式)
- 14. ビジュアルスタジオプログレスバーコントロール:青色
- 15. 12時間形式から24時間形式に変換できません
- 16. 12時間形式を24時間形式に変換するPython
- 17. C#で12時間形式から24時間形式に変換
- 18. 日付形式を24時間形式に変更する方法
- 19. イメージファイルをBMP形式で保存する方法は?
- 20. 変更デフォルト青色
- 21. 時刻が24時間形式のときNSStringからのNSDate
- 22. UNIXでの24時間形式の印刷時間
- 23. 24時間形式の時間変換への変換
- 24. 24時間形式でのMySQLの処理
- 25. 薄い青色のプログレスバー
- 26. MFMailComposeViewControllerはデフォルト青味の色
- 27. 1、8、24ビットのBMPファイルをC++で読み取る
- 28. 変換12時間から24時間形式のJavaScript付き
- 29. /PM時間形式のAMは、24時間に変換
- 30. 実際の時間は24時間形式ですか?
何を試しましたか?どのようにビットマップにアクセスしていますか?手動で?図書館を通して?いくつかのコードを投稿してください。 –