【问题标题】:Take a photo with custom camera resolution?使用自定义相机分辨率拍照?
【发布时间】:2014-04-24 10:24:02
【问题描述】:

我正在编写一个允许使用默认相机拍照的应用程序。问题是照片正在发送到服务器,所以我必须减小它们的大小。 (例如从 3 mb 到 1 mb) 这就是我拍照的方式:

public void startCameraActivity() {

    Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());


    File imagesFolder = new File(Environment.getExternalStorageDirectory(), "path");
    imagesFolder.mkdirs();

    //String filePath = "path" + timeStamp + ".jpg" ;
    File image = new File(imagesFolder, "path" + timeStamp + ".jpg");
    Uri uriSavedImage = Uri.fromFile(image);

    nomeFileJpg = "path"+timeStamp+".jpg";
    Log.i(TAG,"Nome del file: "+nomeFileJpg);

    imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
    startActivityForResult(imageIntent, 2);

}

如何添加以减少维度?

【问题讨论】:

    标签: android camera photo


    【解决方案1】:

    您可以通过直接告诉 Android 相机来降低分辨率。查看Android Camera.Size 了解更多信息。要安全地执行此操作,您可能还会发现 Camera.Preferences.getSupportedPictureSizes() 很有用。

    【讨论】:

    • 如果您在代码中访问硬件摄像头,则可以使用这些方法,其中@penny89 使用内置摄像头应用程序,因此他甚至没有引用摄像头对象来自定义它
    【解决方案2】:

    我不认为这是否可能,因为我不认为任何内置相机应用程序具有从启动它们的意图获取此类参数的功能。

    我遇到了同样的问题开发我的应用程序。请记住,设备上的默认相机应用程序有所不同,例如,获取拍摄照片的路径或某些默认相机应用程序无法获取缩略图时存在问题。
    所以我的建议是尝试创建自己的相机应用程序或使用免费库,可让您调整某些参数。 camera library

    【讨论】:

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