4

我想拍摄照片并使用 android 相机将其保存到我的 SD 卡中。我知道这很容易,但我想以低分辨率存储图像,而不告诉用户去手动设置和设置低分辨率。

4

4 回答 4

2

我要写的不是编写代码的好习惯,但它可能完全满足您的要求

  • 像通常使用 android 默认相机一样捕获图像。
  • 检查刚刚捕获的图像的路径。
  • 使用BitmapFactory.Options calss根据要求降低该图像的质量并存储在位对象中
  • 删除默认相机捕获的原始图像
  • 将该位图对象保存到具有相同文件名和路径的旧图像所在的 SD 卡
于 2013-08-14T09:57:12.203 回答
2

我知道这已经很晚了,但这适用于现在可能阅读此问题的人,您可以使用以下代码:

 Camera.Parameters parameters = mcamera.getParameters();
        List<Camera.Size> sizes = parameters.getSupportedPictureSizes();
        Camera.Size size = sizes.get(sizes.size()-1);
        Log.d("Parth","Size : "+size.height+","+size.width);
        Log.d("Parth","Sizes:"+sizes.toString());
        parameters.setPictureSize(size.width,size.height);
        mcamera.setParameters(parameters);
于 2016-01-11T07:30:14.887 回答
1

使用它来捕获图像:

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.ACTION_IMAGE_CAPTURE, preinsertedUri);

不要使用MediaStore.EXTRA_OUTPUT,因为如果使用,图像会很大EXTRA_OUTPUT

于 2013-08-14T09:57:17.610 回答
1

自己实现一个相机应用程序。用于BitmapFactory解码原始数据。通过BitmapFactory.Options,您可以设置任何您想要的分辨率。

于 2013-08-14T09:56:05.223 回答