我从JNI调用中获得一个字节数组,并试图用它构建一个位图对象。
我的问题是,以下代码返回null。
byte[] image = services.getImageBuffer(1024, 600);
Bitmap bmp = BitmapFactory.decodeByteArray(image, 0, image.length);
你有关于IT技术的任何提示吗?
PS:像素布局是BGR,而不是RGB。
我从JNI调用中获得一个字节数组,并试图用它构建一个位图对象。
我的问题是,以下代码返回null。
byte[] image = services.getImageBuffer(1024, 600);
Bitmap bmp = BitmapFactory.decodeByteArray(image, 0, image.length);
你有关于IT技术的任何提示吗?
PS:像素布局是BGR,而不是RGB。
byte[] image = services.getImageBuffer(1024, 600);
InputStream is = new ByteArrayInputStream(image);
Bitmap bmp = BitmapFactory.decodeStream(is);
decodeByteArray在这种格式下真的不起作用。我手动从BGR更改为RGB。
byte[] image = services.getImageBuffer(1024, 600);
Bitmap bmp = Bitmap.createBitmap(1024, 600, Bitmap.Config.RGB_565);
int row = 0, col = 0;
for (int i = 0; i < image.length; i += 3) {
bmp.setPixel(col++, row, image[i + 2] & image[i + 1] & image[i]);
if (col == 1024) {
col = 0;
row++;
}
然而,
for (i < image.length) 。。。bmp.setPixel(image[i + 2] & image[i + 1] & image[i]);
可能会导致:
08-29 14:34:23.460: ERROR/AndroidRuntime(8638): java.lang.ArrayIndexOutOfBoundsException