2011-03-24 122 views
2

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

有什么方法可以设置使用意图时返回的相机或图像的质量/分辨率?我浏览过Google和api,并没有提供太多内容。任何人都知道这是甚至可能或知道其他方式降低图像分辨率?

任何帮助非常感谢。

回答

3

为什么使用Built in 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像素的平均值为单个像素,以便将图像宽度和高度都减少两个像素)!

+0

感谢您的提示。我现在使用相机API,并且我只通过使用图像中心区域的像素来分析更少的数据。 – chvck 2011-03-29 11:03:46