在Android上将16位RAW RGB_565图像转换为位图

时间:2013-09-26 20:09:52

标签: java android image bitmap rgb

我试图从嵌入式相机(datasheet here)获得一个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字节。

现在,我的图像看起来像这样:

corrupted image

99%的时间。但是,我能够获得看起来像这样的未损坏的图像:

uncorrupted image

很少见。

似乎所有像素都在正确的位置,但是它们的RGB值混合在一起。例如,两张照片之间的白色部分是相同的,因为RGB的顺序无关紧要白色。然而,很明显颜色是混合的,因为红色椅子在损坏的图像中显示为蓝色,蓝色背包在损坏的图像中显示为绿色。

有没有人对为什么会这样做有任何建议?

0 个答案:

没有答案