如何调整已拍摄并存储在文件中的照片的大小?

时间:2013-11-11 11:23:20

标签: android bitmap photo image-resizing

我在几个论坛问题中读过这个。但总是,人们最终使用方法“Bitmap createScaledBitmap(Bitmap src,int dstWidth,int dstHeight,boolean filter)”,但是我无法应用这种方法,因为在处理大图像时,它会失败并显示outofmemory消息。

我想知道如何调整已经拍摄的大图像。我已经引用了大型位图的android开发人员部分,但我无法实现它。

我正在使用下一个代码来捕捉照片。

public void openTakePicture() {

        String date = new SimpleDateFormat("dd-MM-yyyy_HH-mm-ss").format(new Date());

        photoname = "pic_" + date + ".jpg";

        // Create an output file.
        file = new File(Environment.getExternalStorageDirectory(), photoname);
        outputFileUri = Uri.fromFile(file);

        // Generate the Intent.
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);

        // Launch the camera app.
        startActivityForResult(intent, TAKE_PICTURE);

    }

感谢您的评论

1 个答案:

答案 0 :(得分:1)

根据您的需要,您可以捕获较小的图片然后进行操作。我使用类似于下面的东西,但遇到了一些问题,其中一些相机不支持setPictureSize所以我最终使用缩放位图方法。

在调用setPictureSize之前,您可能需要先测试相机是否支持所需的尺寸。

parameters.setPictureFormat(ImageFormat.JPEG);
parameters.setPictureSize(1600, 1200);
parameters.setJpegQuality(30);
mCamera.setParameters(parameters);