web-dev-qa-db-fra.com

Détermination de la résolution de l'appareil photo (c'est-à-dire des mégapixels) par programme sous Android

Je développe actuellement une application Android 2.2 qui utilise Appareil photo . Quelqu'un peut-il maintenant me dire qu'il est "possible de déterminer par programme la résolution de l'appareil photo en mégapixels sous Android"

23
YuDroid

Que signifie résolution d'image?

La résolution fait référence au nombre de pixels d'une image. La résolution est parfois identifiée par la largeur et la hauteur de l'image, ainsi que par le nombre total de pixels de l'image. Par exemple, une image d'une largeur de 2048 pixels et d'une hauteur de 1536 pixels (2048X1536) contient (multiplie) 3 145 728 pixels (ou 3,1 mégapixels). Vous pouvez appeler cela une image 2048X1536 ou 3,1 mégapixels. À mesure que le nombre de mégapixels dans le périphérique de capture de votre appareil photo augmente, la taille d'image maximale que vous pouvez produire augmente également. Cela signifie qu'un appareil photo 5 mégapixels est capable de capturer une image plus grande qu'un appareil photo 3 mégapixels.

Exemple: 1936 x 1552/1024000 = 3 méga pixels

10
Heather McVay

si vous avez l'objet caméra, essayez:

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


int height = size.height;
int width = size.width;
15
wAroXxX

Essaye ça

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;
}

Ajouter cette permission dans le manifeste Android

<uses-permission Android:name="Android.permission.CAMERA" />
5
Satish

Vous pouvez le faire pour obtenir la liste des tailles prises en charge . getSupportedSizes ()

La taille la plus élevée vous donnerait la résolution de la caméra en pixels.

EDIT: Au cas où vous ne le sauriez pas.

Résolution en pixel = largeur X hauteur 

0
PravinCG

Oui, cette méthode me convient… .. Une autre remarque ici, getPictureSize () renverra une liste des tailles prises en charge avec différentes hauteurs et largeurs. Pour calculer la résolution en pixels de la caméra de l'appareil, veuillez obtenir la plus grande hauteur et la plus grande largeur de la liste des tailles.

0
Liverpudlian