Определение разрешения камеры (то есть мегапикселей) программно в Android - PullRequest
23 голосов
/ 05 августа 2011

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

Ответы [ 5 ]

16 голосов
/ 05 августа 2011

если у вас есть объект камеры, попробуйте:

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


int height = size.height;
int width = size.width;
10 голосов
/ 14 июня 2012

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

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

Пример: 1936 x 1552/1024000 = 3 мегапикселя

5 голосов
/ 18 ноября 2014

Попробуйте это

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" />
0 голосов
/ 27 мая 2013

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

0 голосов
/ 05 августа 2011

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

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

РЕДАКТИРОВАТЬ: На всякий случай, если вы не знаете.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...