我正在制作一个使用内置相机作为意图的android应用程序。我正在逐个像素地对照片进行一些分析。我的野火在一张普通照片中返回 79000 像素,这使得分析有点慢。
有没有办法设置使用意图时返回的相机或图像的质量/分辨率?我在 Google 和 api 上环顾四周,并没有想出太多。任何人都知道这是否可能或知道其他降低图像分辨率的方法?
非常感谢任何帮助。
我正在制作一个使用内置相机作为意图的android应用程序。我正在逐个像素地对照片进行一些分析。我的野火在一张普通照片中返回 79000 像素,这使得分析有点慢。
有没有办法设置使用意图时返回的相机或图像的质量/分辨率?我在 Google 和 api 上环顾四周,并没有想出太多。任何人都知道这是否可能或知道其他降低图像分辨率的方法?
非常感谢任何帮助。
为什么要通过意图使用内置应用程序而不是使用 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 个像素的平均值,这样您的图像宽度和高度都会减少两倍)!