从jpeg字节数组中获取像素

时间:2013-01-30 18:21:56

标签: android bitmap java-native-interface jpeg pixel

我需要从Jpeg图像中获取像素信息,而不需要实现Bitmap,然后将其传递给JNI。

除了来自相机的jpeg图像之外,android不可能得到任何其他内容(除非你需要低分辨率,在这种情况下你可以使用PreviewCallback),所以我从jpegCallback获得了byte []

是否可以在int[]中使用Bitmap.getPixels()获取像素信息?

2 个答案:

答案 0 :(得分:1)

如果您不想构建位图,您唯一的选择就是自己解码JPEG缓冲区;这意味着要么找到另一个Java JPEG解压缩库,要么使用JNI和一个C JPEG库,例如libjpeg。或者,您可以从头开始编写一个,除非您已经熟悉图像压缩例程,否则我不建议您这样做,并且您有足够的时间进行实现和调试。

斯科特问道,为什么使用Bitmap是不可接受的?无论你采取什么样的路线,你都需要调用一些东西来解压缩图像数据,使用BitmapFactory.decodeByteArray是一种直接的,已知的工作选项。

答案 1 :(得分:0)

我不知道标准Android API如何实现这一点。我确定你可以使用第三方JPEG库(谷歌搜索可能发现)。你为什么试图避免使用位图?如果是内存约束,您可能希望使用BitmapRegionDecoder

解码小的水平块