从字节数组创建位图,通过libjpeg从JPEG文件解压缩

Co-*_*Gia 4 java-native-interface android bitmap libjpeg android-ndk

我使用libjpeg(C库)来解压缩JPEG文件.现在我有一个unsigned char数组.如何在JNI中从该数组创建位图?

Ale*_*ohn 5

是的,这是可能的,但应该有一个强有力的理由走这条路.为获得最佳性能,请使用

Bitmap bm = BitmapFactory.decodeByteArray(jpegArray, 0, jpegArray.length);
Run Code Online (Sandbox Code Playgroud)

即使您需要对同一个jpeg进行两次解码 - 一次在C中,一次在Java中,它将节省您的编程工作量和执行时间.

请注意,Android 内置了libjpeg(请参阅/system/lib您的设备)并decodeByteArray()使用它,并且经过高度优化.