Автоматическое определение разрешения камеры (то есть мегапикселей) на Android

Я разрабатываю приложение для Android в 2.2, которое использует Camera. Теперь может ли кто-нибудь сказать мне, что «возможно ли программно определить разрешение камеры в мегапикселях в Android»

Любая помощь будет очень заметной.

Что означает разрешение изображения?

Разрешение относится к числу пикселей в изображении. Иногда разрешение определяется шириной и высотой изображения, а также общим количеством пикселей в изображении. Например, изображение шириной 2048 пикселей и высотой 1536 пикселей (2048X1536) содержит (умножает) 3,145,728 пикселя (или 3,1 мегапикселя). Вы могли бы назвать это 2048X1536 или 3,1 мегапиксельным изображением. По мере того, как мегапиксели в устройстве для съёмки в вашей камере увеличиваются, возможно, вы можете создать возможное изображение максимального размера. Это означает, что 5-мегапиксельная камера способна захватывать более крупное изображение, чем 3-мегапиксельная камера.

Пример: 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; } 

Добавьте это разрешение в манифест андроида

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

Вы можете получить это, чтобы получить список поддерживаемых размеров. getSupportedSizes ()

Самый высокий размер даст вам разрешение камеры в пикселях.

EDIT: На всякий случай вы не знаете.

Разрешение в пикселях = ширина X высота

Да, так работает для меня. Еще одно замечание: getPictureSize () вернет список поддерживаемых размеров с разной высотой и шириной. Чтобы вычислить разрешение в пикселе камеры устройства, получите максимальную высоту и ширину из списка размеров.