如何在Android相机中拍摄低分辨率照片

5

我想使用Android相机拍摄照片并将其保存到SD卡中。虽然这很容易,但我希望以低分辨率存储图像,而不需要告诉用户手动设置低分辨率。


请查看此链接:https://dev59.com/QFzUa4cB1Zd3GeqP5KIn - gunar
4个回答

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
我将要写的代码并不是好的实践,但它可以满足你的需求。
  • 像通常使用Android默认相机一样捕获图像。
  • 检查刚刚捕获的图像的路径。
  • 使用BitmapFactory.Options类按需降低图像质量,并存储在bitmap对象中。
  • 删除由默认相机拍摄的原始图像。
  • 将该位图对象保存到SD卡上,文件名和路径与旧图像相同。

1
使用此代码来捕获图像:

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

不要使用MediaStore.EXTRA_OUTPUT,因为如果使用EXTRA_OUTPUT,图像的大小会变得很大。

1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接