it-swarm.com.de

Festlegen der Kameraauflösung (z. B. Megapixel) programmgesteuert in Android

Ich entwickle in 2.2 eine Android-Anwendung, die Camera ..__ verwendet. Kann mir jetzt jemand sagen: "Ist es möglich, die Kameraauflösung in Megapixel in Android programmgesteuert zu bestimmen"

23
YuDroid

Was bedeutet Bildauflösung?

Die Auflösung bezieht sich auf die Anzahl der Pixel in einem Bild. Die Auflösung wird manchmal durch die Breite und Höhe des Bildes sowie die Gesamtzahl der Pixel im Bild bestimmt. Ein Bild mit einer Breite von 2048 Pixeln und einer Höhe von 1536 Pixeln (2048X1536) enthält beispielsweise 3.145.728 Pixel (oder 3,1 Megapixel). Man könnte es ein 2048X1536 oder ein 3,1 Megapixel-Bild nennen. Wenn die Megapixel im Aufnahmegerät Ihrer Kamera ansteigen, steigt auch das maximal mögliche Bild, das Sie produzieren können. Dies bedeutet, dass eine 5-Megapixel-Kamera ein größeres Bild aufnehmen kann als eine 3-Megapixel-Kamera.

Beispiel: 1936 x 1552/1024000 = 3 Megapixel

10
Heather McVay

wenn Sie das Kameraobjekt haben, versuchen Sie Folgendes:

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


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

Versuche dies

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

Fügen Sie diese Berechtigung im Android-Manifest hinzu

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

Sie können dies, um die Liste der unterstützten Größen zu erhalten . getSupportedSizes ()

Die höchste Größe würde die Auflösung der Kamera in Pixel anzeigen.

EDIT: .__ Nur für den Fall, dass Sie es nicht wissen.

Auflösung in Pixel = Breite X Höhe 

0
PravinCG

Ja, auf diese Weise funktioniert das für mich . Eine weitere Anmerkung, getPictureSize () gibt eine Liste der unterstützten Größen mit unterschiedlichen Höhen und Breiten zurück. Um die Auflösung der Gerätekamera in Pixel zu berechnen, ermitteln Sie bitte die größte Höhe und Breite aus der Größenliste.

0
Liverpudlian