如何使用Android相机捕获低分辨率图片

时间:2013-08-14 09:46:04

标签: android camera android-camera surfaceview android-camera-intent

我想拍摄照片并使用安卓相机将其保存到我的SD卡。我知道它很简单,但我想以低分辨率存储图像而不告诉用户设置并手动设置低分辨率。

4 个答案:

答案 0 :(得分:2)

我要写的不是做代码的好习惯,但它可能会满足你的要求

  • 像通常使用Android默认相机一样捕获图像。
  • 检查刚捕获的图像的路径。
  • 使用BitmapFactory.Options calss按照要求降低该图片的质量并存储在bitmap对象中
  • 删除默认摄像头拍摄的原始图像
  • 将位图对象保存到SD卡,其中旧图像所在的位置具有相同的文件名和路径

答案 1 :(得分: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);

答案 2 :(得分:1)

自己实施相机应用程序。使用BitmapFactory解码原始数据。通过BitmapFactory.Options,您可以设置所需的任何分辨率。

答案 3 :(得分:1)

使用它来捕捉图像:

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

请勿使用MediaStore.EXTRA_OUTPUT,因为如果使用EXTRA_OUTPUT

,图片尺寸会很大