各カラーチャンネルを別々に処理するとうまくいく処理アルゴリズムがあります。しかし、私がピクセル値全体を処理しようとすると、物事が忘れられました。結果は良くありません。 3つのカラーチャンネルをピクセル値(アルファを除外)から分離し、新しい値(3つのチャンネル)を処理したいと考えています。 C++でどうすればいいですか?良い解決策ではないRGB_565ビットマップ形式を試したことを知っています。私はRGBを24ビットの変数にマージしたいと思っています。NDK - ARGB_8888ビットマップのアルファのないRGB値を処理する
1
A
答えて
1
各チャネルに別々にアクセスできます。正確な方法は、実際のピクセル形式に依存します。
ANDROID_BITMAP_FORMAT_RGBA_8888
:各ピクセルは4バイト長で、レイアウトパターンはRGBARGBA ...、つまり1番目のピクセルバイトは赤色コンポーネント、2-dは緑色、3-dは青色、 thはアルファ成分です。
ANDROID_BITMAP_FORMAT_RGB_565
red = (u16_pix >> 11) & 0x1f;
green = (u16_pix >> 5) & 0x3f;
blue = (u16_pix >> 0) & 0x1f;
ANDROID_BITMAP_FORMAT_RGBA_4444
:色成分は次のように抽出することができるように、各画素は、ネイティブエンディアンに格納され、2バイトの長さである が原因で低品質で廃止され、あなたはいけませんこれについても考えてください
ANDROID_BITMAP_FORMAT_A_8
: は1バイトあたり1バイトで、アルファ専用またはグレースケールの画像用に設計されています。おそらくあなたが探しているものではありません。
Androidは24bppフォーマットではないため、32bppまたは16bppのいずれかを選択する必要があります。あなたのアルゴについて:パックされたピクセル値の中で個々のコンポーネントにコードがアクセスするか、パックされたピクセルをいくつかのプレーン、つまり配列にデインターリーブする2つの方法があります。処理後、サポートされているフォーマットの1つに再度インターリーブしたり、興味のある他のフォーマットに変換したりすることができます。
関連する問題
- 1. Android:ビットマップ設定ARGB_8888が一部のデバイスで動作しない
- 2. 巨大なビットマップを処理する
- 3. Androidカメラアプリケーション - 大きなビットマップの処理
- 4. 奇妙なImageViewビットマップの処理
- 5. ビットマップ/キャンバスの使用とNDK
- 6. iphoneアプリで画像処理中のRGB
- 7. Androidカスタムビューで透明/アルファが正しく処理されない
- 8. アルファがスムーズなカラースペクトルを妨げる - 処理
- 9. OpenCVのビットマップ処理へのポインタ
- 10. スレッド処理後のGDI +ビットマップの保存
- 11. PygameはRGB値がオフセット値1pxで、アルファ値ではない画像を読み込みます
- 12. ビットマップからカラーバイト(RGB)を読み取る
- 13. Androidで指定されたビットマップ領域のアルファ値を変更する質問
- 14. getImageDataのアルファに関連するPNG RGB変換ですか?
- 15. 処理中、楕円はアルファ値に従っていませんか?
- 16. ビットマップを2回目に処理する際のOutOfMemoryError
- 17. VBでビットマップをRGBに変換
- 18. AndroidのRGBビデオフレームからビットマップを作成する
- 19. PNGのアルファ値
- 20. Android - JNI/NDK - SIGSEVによるクラッシュ - シグナル処理が開始されない
- 21. PNGのアルファ透明度をメモリ上で直接処理する方法は?
- 22. UINavigationControllerカスタムトランジションアニメーションビューコントローラのアルファ値
- 23. ビットマップを処理しているときにメモリリークが発生する
- 24. RGB値を基準RGB値で正規化する方法
- 25. Swiftでの値の処理なし
- 26. RGBカラーからビットマップを作成するには
- 27. ビットマップから1ピクセルからrgbカラーを取得する方法
- 28. 48bppビットマップをRGBから初期化する方法は?
- 29. 適用方法イメージ処理でのしきい値処理
- 30. ビットマップ処理中にメモリリークが発生する
すでに試したコードを投稿できますか? – gregn3