Я разрабатываю приложение для Android в версии 2.2, в котором используется камера. Теперь может ли кто-нибудь сказать мне, что «Возможно ли программно определить разрешение камеры в мегапикселях в Android»
Программное определение разрешения камеры (т.е. мегапикселей) в Android
Ответы (5)
Что означает разрешение изображения?
Разрешение относится к количеству пикселей в изображении. Разрешение иногда определяется шириной и высотой изображения, а также общим количеством пикселей в изображении. Например, изображение шириной 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;
}
Добавьте это разрешение в манифест Android
<uses-permission android:name="android.permission.CAMERA" />
Вы можете это сделать, чтобы получить список поддерживаемых размеров. getSupportedSizes()
Максимальный размер даст вам разрешение камеры в пикселях.
РЕДАКТИРОВАТЬ: На всякий случай, если вы не знаете.
Разрешение в пикселях = ширина X высота
Да, этот способ работает для меня. Еще одно замечание: getPictureSize() вернет список поддерживаемых размеров с разной высотой и шириной. Чтобы рассчитать разрешение в пикселях камеры устройства, возьмите наибольшую высоту и ширину из списка размеров.