我从JNI调用获取一个字节数组,并试图用它构造一个Bitmap对象.
我的问题是,以下代码返回null.
byte[] image = services.getImageBuffer(1024, 600);
Bitmap bmp = BitmapFactory.decodeByteArray(image, 0, image.length);
Run Code Online (Sandbox Code Playgroud)
关于它的任何提示?
PS:像素布局是BGR,而不是RGB.
DecodeByteArray 确实不适用于这种格式。我手动从 BGR 更改为 RGB。
\n\n byte[] image = services.getImageBuffer(1024, 600);\n\n Bitmap bmp = Bitmap.createBitmap(1024, 600, Bitmap.Config.RGB_565);\n int row = 0, col = 0;\n for (int i = 0; i < image.length; i += 3) {\n bmp.setPixel(col++, row, image[i + 2] & image[i + 1] & image[i]);\n\n if (col == 1024) {\n col = 0;\n row++;\n }\nRun Code Online (Sandbox Code Playgroud)\n\n然而,
\n\nfor (i < image.length) \xe3\x80\x82\xe3\x80\x82\xe3\x80\x82bmp.setPixel(image[i + 2] & image[i + 1] & image[i]); \nRun Code Online (Sandbox Code Playgroud)\n\n可以引起:
\n\n\n\n08-29 14:34:23.460:错误/AndroidRuntime(8638):java.lang.ArrayIndexOutOfBoundsException
\n
| 归档时间: |
|
| 查看次数: |
15159 次 |
| 最近记录: |