在Android中以编程方式确定相机分辨率(即百万像素)

我正在开发一个使用Camera的2.2应用程序。 现在谁能告诉我,“是否有可能以编程方式确定以百万像素在Android的摄像头分辨率

Solutions Collecting From Web of "在Android中以编程方式确定相机分辨率(即百万像素)"

图像分辨率是什么意思?

分辨率是指图像中的像素数量。 分辨率有时可以通过图像的宽度和高度以及图像中的像素总数来确定。 例如,2048像素宽和1536像素高(2048X1536)的图像包含(乘)3,145,728像素(或3.1百万像素)。 你可以称它为2048X1536或者3.1百万像素的图像。 随着摄像头中摄像设备的百万像素数量的增加,您可以生成的可能的最大尺寸图像也会增加。 这意味着500万像素的摄像头能够比300万像素的摄像头捕捉更大的图像。

例如:1936 x 1552/1024000 = 3百万像素

如果您有相机对象,请尝试:

android.hardware.Camera.Parameters parameters = camera.getParameters(); android.hardware.Camera.Size size = parameters.getPictureSize(); int height = size.height; int width = size.width; 

尝试这个

 public float getBackCameraResolutionInMp() { int noOfCameras = Camera.getNumberOfCameras(); float maxResolution = -1; long pixelCount = -1; for (int i = 0;i < noOfCameras;i++) { Camera.CameraInfo cameraInfo = new CameraInfo(); Camera.getCameraInfo(i, cameraInfo); if (cameraInfo.facing == CameraInfo.CAMERA_FACING_BACK) { Camera camera = Camera.open(i);; Camera.Parameters cameraParams = camera.getParameters(); for (int j = 0;j < cameraParams.getSupportedPictureSizes().size();j++) { long pixelCountTemp = cameraParams.getSupportedPictureSizes().get(j).width * cameraParams.getSupportedPictureSizes().get(j).height; // Just changed i to j in this loop if (pixelCountTemp > pixelCount) { pixelCount = pixelCountTemp; maxResolution = ((float)pixelCountTemp) / (1024000.0f); } } camera.release(); } } return maxResolution; } 

在Android清单中添加此权限

 <uses-permission android:name="android.permission.CAMERA" /> 

你可以这样得到支持的大小列表。 getSupportedSizes()

最高的尺寸会给你像素的相机resoultion。

编辑:以防万一你不知道。

像素分辨率=宽度X高度

是的,这种方式对我有用。 还有一点需要注意的是,getPictureSize()将返回一个支持的大小不同的高度和宽度的列表。 要计算设备相机的像素分辨率,请从尺寸列表中获取最大高度和宽度。