我需要从Jpeg图像中获取像素信息,而不需要实现Bitmap,然后将其传递给JNI。
除了来自相机的jpeg图像之外,android不可能得到任何其他内容(除非你需要低分辨率,在这种情况下你可以使用PreviewCallback
),所以我从jpegCallback获得了byte []
是否可以在int[]
中使用Bitmap.getPixels()
获取像素信息?
答案 0 :(得分:1)
如果您不想构建位图,您唯一的选择就是自己解码JPEG缓冲区;这意味着要么找到另一个Java JPEG解压缩库,要么使用JNI和一个C JPEG库,例如libjpeg。或者,您可以从头开始编写一个,除非您已经熟悉图像压缩例程,否则我不建议您这样做,并且您有足够的时间进行实现和调试。
斯科特问道,为什么使用Bitmap是不可接受的?无论你采取什么样的路线,你都需要调用一些东西来解压缩图像数据,使用BitmapFactory.decodeByteArray是一种直接的,已知的工作选项。
答案 1 :(得分:0)
我不知道标准Android API如何实现这一点。我确定你可以使用第三方JPEG库(谷歌搜索可能发现)。你为什么试图避免使用位图?如果是内存约束,您可能希望使用BitmapRegionDecoder
解码小的水平块