2017-05-11 6 views
0

Ich möchte eine Vorschau in Vollbild mit camera2 api anzeigen. Die von mir ausgewählte Kamera ist 4160x3120 (16: 9) und mein Bildschirm ist 1080x1920 (9:16). Deshalb, wenn ich die Vorschau möchten sich skaliert werden muss ich die Kamera Ausgabe beschneiden:Camera2 Vorschau gestreckt beim Zuschneiden mit SCALER_CROP_REGION

Rect zoomCrop = new Rect(0, 0, 1755, 3120); 
captureRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, zoomCrop); 

Die geerntete Vorschau 1755x3120 von Größe sein sollte, die auch ein Verhältnis von 9.16 hat. Trotzdem ist die Vorschau gestreckt.

Frage: Bin ich mit SCALER_CROP_REGION richtig? Wenn nicht, wie soll ich es benutzen?

Vielen Dank im Voraus

Antwort

1

Es klingt wie Sie sind ein Landschaftsbild erhalten und es in einer Portraitansicht angezeigt wird - dies bedeutet, dass Sie ‚Säule Box‘ Linien oberhalb und unterhalb des Bildes haben, wenn Sie Verzerrungen vermeiden wollen .

Wenn Sie den Bildschirm füllen möchten und keine Verzerrung oder die Säulenrahmenlinien haben, dann müssen Sie akzeptieren, dass ein Teil Ihres Bildes nicht sichtbar ist, da es außerhalb der Form des Betrachtungsbereichs ist.

SCALER_CROP_REGION ist schwierig, ohne Diagramme zu verstehen - ich die beste Erklärung in der Andoir Quelle Dokumentation, hier zu sein gefunden: https://source.android.com/devices/camera/camera3_crop_reprocess

Ein Diagramm aus, das hilft hier als Beispiel wiedergegeben - der Grund für die Highlight dieses zeigen wie die Koordinaten verwendet werden. Wenn Sie sich Ihre Anbauregion ansehen, wird sie nach oben links geneigt sein, wenn Sie bei (0,0) beginnen, was ich nicht genau weiß, was Sie eigentlich wollen.

enter image description here

+0

Ja, das ist exactely, was ich will yo tun, „verstecken“ ein Teil des Bildes. Ich hätte zwar mit scaler_crop_region das automatisch gemacht, aber anscheinend nicht ... Weißt du, wie ich einen Teil des Bildes verstecken kann, um die Vorschau im Vollbild anzuzeigen? –

+1

Camera2 scheint eine Reihe von offenen Fragen und Fragen zur Orientierung zu haben (z. B. http://stackoverflow.com/q/33479004/334402). Es klingt, als ob Sie möchten, dass Ihre App im Hochformat verwendet wird, aber im Querformat aufgenommen wird. Ich nehme an, die Verzerrung passiert, weil Sie die Ansicht mit einem Bild "füllen", das nicht das gleiche Seitenverhältnis wie die Ansicht ist. Hast du das Display benutzt? – Mick

Verwandte Themen