Détermination de la résolution de la caméra (c'est-à-dire mégapixels) par programmation dans Android

Je développe une application Android en 2.2, qui utilise la caméra. Maintenant, Quelqu'un peut-il me dire que "est-il possible de déterminer par programme la résolution de la caméra en mégapixels dans Android"

23
demandé sur Cœur 2011-08-05 10:47:39

5 réponses

Que signifie la résolution de l'image?

La résolution fait référence au nombre de pixels dans une image. La résolution est parfois identifié par la largeur et la hauteur de l'image ainsi que le nombre total de pixels dans l'image. Par exemple, une image de 2048 pixels de large et 1536 pixels de haut (2048X1536) contient (multiplier) 3 145 728 pixels (ou 3,1 Mégapixels). Vous pouvez l'appeler une image 2048X1536 ou 3,1 Mégapixels. Comme l'mégapixels dans le dispositif de ramassage dans votre appareil photo augmente, l'image de taille maximale possible que vous pouvez produire. 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
répondu Heather McVay 2012-06-14 14:59:14

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
répondu wAroXxX 2011-08-05 06:55:53

Essayez ceci

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

Ajoutez cette autorisation dans le manifeste android

<uses-permission android:name="android.permission.CAMERA" />
4
répondu Satish 2016-05-17 11:44:15

Vous pouvez obtenir ceci 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.

Modifier: Juste au cas où vous ne savez pas.

Résolution en pixel = Largeur x hauteur

0
répondu PravinCG 2011-08-05 07:49:05

Oui, cette façon fonctionne pour moi. Une note de plus ici, getPictureSize () retournera une liste de taille Prise 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 largeur de la liste des tailles.

0
répondu Liverpudlian 2013-05-27 04:44:31