Sto cercando di ottenere un frame zoom digitale su Android 5.0 con interfaccia camera2. doc appropriata per tale funzionalità è developer.android.com/camera2/captureRequestAndroid 5.0 Regioni di ritaglio errate sulla superficie di anteprima e fermo immagine
superficie usato nella mia domanda:
- SurafaceView (1920x1080, 16: 9 aspect ratio)
- ImageReader (3264x2448, 4: 3 aspect ratio)
La dimensione del sensore della fotocamera è 3280x2464 (proporzioni 4: 3)
Area di coltura che desidero ottenere dal sensore è:
Rect zoomCropPreview = new Rect(1094, 822, 2186, 1642); //(1092x820, 4:3 aspect ratio)
ho impostato questo Rect come parametro per la richiesta di anteprima:
previewRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, zoomCropPreview);
captureSession.setRepeatingRequest(previewRequestBuilder.build(), null, null);
E per scattare immagini:
stillRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, zoomCropPreview);
captureSession.capture(stillRequestBuilder.build(), new captureListener() , null);
Risultati attesi:
- Il rettangolo di ritaglio di Coz ha un rapporto di 4: 3, quindi l'anteprima dovrebbe essere ritagliata ped vertically (letterbox)
- L'immagine fissa deve essere la regione di ritaglio esatta.
- Sia l'anteprima che l'immagine fissa devono essere centrate sullo stesso punto della scena e dovrebbero differire solo per i bordi verticali.
risultato reale:
- anteprima e immagini fisse punto sul diversa scena che sembra essere spostato in senso verticale. Guarda le immagini allegate.
Che cosa sto facendo di sbagliato?
Qual è il livello hardware del dispositivo (https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#INFO_SUPPORTED_HARDWARE_LEVEL)? Se LEGACY, potresti incontrare un bug del sistema operativo risolto nelle versioni successive di Android. –