裁剪图像由相机拍摄而不使用位图

时间:2015-02-25 19:16:34

标签: android android-camera

我正在开发一个图像处理应用程序,我需要将拍摄的照片划分为四个区域,但是使用BitmapFactoy会占用太多的资源和时间并使我速度慢下来,我想使用原始的byte []数据来做{ {1}}给了我。 现在这就是我所做的,我想改进它以使用byte []加速它:

public void onPictureTaken(byte[] data, Camera camera)

对我来说,任何能够加速这些操作的建议都会受到赞赏。

1 个答案:

答案 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();
    }