埋め込みカメラから解像度 80 x 60 の 16 ビット カラー画像を取得しようとしています (データシートはこちら)。カメラから 9600 (80 * 60 * 16 / 8) バイトを取得できましたが、画像の表示に問題があります。次のコードを使用して、バイト配列をビットマップに変換しています。
bm = Bitmap.createBitmap(80, 60, Bitmap.Config.RGB_565);
bm.copyPixelsFromBuffer(ByteBuffer.wrap(jpegBytes));
jpegBytes は画像のバイトの配列で、長さは 9600 バイトです。
現在、次のような画像を取得しています。
99%の確率で。ただし、次のような破損していない画像を取得できます。
めったにありません。なぜこれが起こっているのかについて誰か提案がありますか? 本当にありがとう!
アップデート:
すべてのピクセルが正しい場所にあるように見えますが、RGB 値が混ざっています。たとえば、両方の写真の間の白い部分は同じです。これは、RGB の順序が白になるのに関係がないためです。ただし、破損した画像では赤い椅子が青色に表示され、破損した画像では青いバックパックが緑色に表示されているため、色が混ざっていることは明らかです。