我正在开发一个图像处理应用程序,我需要将拍摄的照片划分为四个区域,但是使用BitmapFactoy会占用太多的资源和时间并使我速度慢下来,我想使用原始的byte []数据来做{ {1}}给了我。 现在这就是我所做的,我想改进它以使用byte []加速它:
public void onPictureTaken(byte[] data, Camera camera)
对我来说,任何能够加速这些操作的建议都会受到赞赏。
答案 0 :(得分:3)
你有没有想过BitmapRegionDecoder(目前只支持JPEG和PNG格式)?如果您使用API级别10及更高版本开发应用程序,则可以使用此API来加速大型位图处理。
boolean isShareable = false;
try {
InputStream is = new FileInputStream("/mnt/sdcard/test.png");
Rect rect = new Rect();
BitmapFactory.Options options = new BitmapFactory.Options();
BitmapRegionDecoder.newInstance(is, isShareable).decodeRegion(rect, options);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}