我正在尝试从嵌入式相机(此处的数据表)获取分辨率为 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 的顺序对于获得白色并不重要。但是,很明显,颜色是混合的,因为红色椅子在损坏的图像中显示为蓝色,而蓝色背包在损坏的图像中显示为绿色。
有人对为什么会发生这种情况有任何建议吗?