我在几个论坛问题中读过这个。但总是,人们最终使用方法“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);
}
感谢您的评论
答案 0 :(得分:1)
根据您的需要,您可以捕获较小的图片然后进行操作。我使用类似于下面的东西,但遇到了一些问题,其中一些相机不支持setPictureSize所以我最终使用缩放位图方法。
在调用setPictureSize之前,您可能需要先测试相机是否支持所需的尺寸。
parameters.setPictureFormat(ImageFormat.JPEG);
parameters.setPictureSize(1600, 1200);
parameters.setJpegQuality(30);
mCamera.setParameters(parameters);