J'ai utilisé la classe ImageUtil
prévu dans https://stackoverflow.com/a/40152147/2949966 dans mon git: https://github.com/ahasbini/cameraview/tree/camera_preview_imp (note la mise en œuvre est en camera_preview_imp
branche) pour mettre en œuvre un rappel aperçu du cadre. Un ImageReader
est configuré pour prévisualiser les images au format ImageFormat.YUV_420_888
qui sera converti en ImageFormat.JPEG
en utilisant la classe ImageUtil
et l'envoyer au rappel de trame. L'application de démonstration enregistre une image depuis le rappel vers un fichier toutes les 50 images. Toutes les images de trame enregistrées sont coming out déformée similaire à ci-dessous:Conversion YUV_420_888 au format JPEG et l'enregistrement des résultats des fichiers d'image déformée
Si j'ai changé le ImageReader
à utiliser ImageFormat.JPEG
à la place en faisant les changements suivants dans Camera2
:
mPreviewImageReader = ImageReader.newInstance(previewSize.getWidth(),
previewSize.getHeight(), ImageFormat.JPEG, /* maxImages */ 2);
mCamera.createCaptureSession(Arrays.asList(surface, mPreviewImageReader.getSurface()),
mSessionCallback, null);
la l'image arrive correctement sans aucune distorsion mais la fréquence d'images chute de manière significative et la vue commence à être décalée. Par conséquent, je crois que la classe ImageUtil
ne convertit pas correctement.
'l'image finale avec distorsion est l'image écrite dans un fichier? –
Ma mauvaise, question éditée pour effacer la confusion. – ahasbini
où je peux voir la méthode 'onImageAvailable (ImageReader reader)' (ImageReader.OnImageAvailableListener)? –