Android 5.0 Falsche Schnittbereiche auf der Vorschauoberfläche und erfasstes Standbild
Ich versuche, einen digital gezoomten Rahmen auf Android 5.0 mit Kamera2-Schnittstelle zu bekommen. Das entsprechende Dokument für diese Funktionalität ist developer.android.com / camera2 / captureRequest
Oberfläche in meiner Anwendung verwendet:
SurafaceView (1920 x 1080, Seitenverhältnis 16: 9)ImageReader (3264 x 2448, Seitenverhältnis 4: 3)Die Sensorgröße der Kamera beträgt 3280 x 2464 (Seitenverhältnis 4: 3)
Crop Region, die ich vom Sensor erhalten möchte, ist:
Rect zoomCropPreview = new Rect(1094, 822, 2186, 1642); //(1092x820, 4:3 aspect ratio)
Ich setze dieses Rect als Parameter für die Vorschau-Anfrage:
previewRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, zoomCropPreview);
captureSession.setRepeatingRequest(previewRequestBuilder.build(), null, null);
Und um ein Standbild aufzunehmen:
stillRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, zoomCropPreview);
captureSession.capture(stillRequestBuilder.build(), new captureListener() , null);
Erwartete Ergebnisse
Coz Zuschneide-Rechteck hat ein Verhältnis von 4: 3, dann sollte die Vorschau vertikal zugeschnitten werden (Letterbox)Das Standbild sollte ein exakter Ausschnittbereich sein.Vorschau und Standbild sollten auf demselben Szenenpunkt zentriert sein und sich nur in den vertikalen Rändern unterscheiden.Echtes Ergebnis:
Vorschau und Standbild zeigen auf eine andere Szene, die vertikal verschoben zu sein scheint. Schau dir Bilder anhängen an.Was mache ich falsch