【问题标题】:How to capture low resolution picture using android camera如何使用安卓相机拍摄低分辨率图片
【发布时间】:2013-08-14 09:46:04
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

    【解决方案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);
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        用它来捕捉图像:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多