Android相机意图图像质量

时间:2011-03-24 21:54:35

标签: android android-camera-intent

我正在制作一个Android应用程序,它使用内置的一个作为意图使用相机。我正在逐像素地对照片进行一些分析。我的野火在普通照片中返回79000像素,这使得分析有点慢。

使用意图时,有没有办法设置相机或图像的质量/分辨率?我已经浏览了谷歌和api,并没有想出太多。任何人都知道这是否可能或知道其他一些降低图像分辨率的方法?

任何帮助非常感谢。

1 个答案:

答案 0 :(得分:3)

为什么使用内置的Appliction虽然是意图而不是你自己用API编写的应用程序?我以这种方式使用相机时遇到了各种问题;毕竟,如果你想要完全控制,你不应该使用意图。有许多工作示例可以通过API拍照。

因此,当通过API使用相机时,您可以使用Camera类的setParameters方法将CameraParameters对象传递给相机对象并更改各种参数。

CameraParameters类包含一个setPictureSize(int,int)方法,可用于更改图片的大小。您可以使用CameraParameters的getSupportedPictureSizes()方法找出您的设备支持的图片大小,并使用适合您的图片大小。

List<Size> sizes = mCamera.getParameters().getSupportedPictureSizes();

for (Size size : sizes) {
    // Do something, e.g. :
    menu.add(0, 1, 1, size.width + "x" + size.height);       
}

另外,我发现您可以将图片的格式设置为NV21。这是一种原始格式,您可以自己轻松地对返回图像的像素进行子采样(将每个像素作为每4像素的平均值,这样您就可以将图像宽度和高度减少两倍)!