用自定义相机分辨率拍照?

时间:2014-04-24 10:24:03

标签: android camera photo

我正在编写一个允许使用默认相机拍照的应用。问题是照片正在发送到服务器,因此我必须减小它们的大小。 (例如从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);

}

如何添加以减少尺寸?

2 个答案:

答案 0 :(得分:0)

您可以直接告诉Android相机降低分辨率。有关详细信息,请查看Android Camera.Size。要安全地执行此操作,您可能还会发现Camera.Preferences.getSupportedPictureSizes()有用。

答案 1 :(得分:0)

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

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