Convertir android.médias.Image (YUV_420_888) Bitmap
Je suis en train de mettre en œuvre de prévisualisation de la caméra traitement de données d'image à l'aide de la caméra 2 api proposé ici: Prévisualisation de la caméra traitement de données d'image avec Android L et la caméra 2 API.
J'ai réussi à recevoir des rappels à l'aide de onImageAvailableListener, mais pour l'avenir du traitement j'ai besoin d'obtenir une image bitmap à partir d'YUV_420_888 android.médias.Image. J'ai cherché sur des questions similaires, mais aucun d'entre eux ont aidé.
Pourriez vous s'il vous plaît me suggérer comment convertir android.médias.Image (YUV_420_888) Bitmap ou peut-être il ya une meilleure façon d'écoute pour afficher un aperçu des images?
OriginalL'auteur mol | 2015-02-10
Vous devez vous connecter pour publier un commentaire.
Je écrire un peu de code à ce sujet, et c'est le YUV données de prévisualisation et de chang il JPEG datas ,et je peux l'utiliser pour enregistrer en tant que bitmap ,byte[] ,ou d'autres.(Vous pouvez voir la classe "Répartition" ).
Et SDK document dit:
"Pour efficace YUV traitement avec android.renderscript: Créer un RenderScript Allocation avec une prise en charge YUV type, la IO_INPUT drapeau, et l'une des tailles retourné par getOutputSizes(Allocation.class), Puis obtenir la Surface avec getSurface()."
voici le code, j'espère qu'elle vous aidera à:https://github.com/pinguo-yuyidong/Camera2/blob/master/camera2/src/main/rs/yuv2rgb.rs
OriginalL'auteur yydcdut
Pour une solution plus simple voir ma mise en œuvre ici:
La Conversion YUV 420_888 Bitmap (code complet)
La fonction prend les médias.image d'entrée, et crée des trois RenderScript des allocations basées sur l'axe y, u et v des avions. Il suit la YUV_420_888 logique, comme indiqué dans cet article Wikipedia illustration.
Cependant, ici, nous avons trois différents plans d'image pour le Y, U et V-canaux, donc je prends ces trois byte[], c'est à dire U8 allocations. La y-répartition de la taille largeur * hauteur octets, tandis que le u et v allocatons de taille largeur * hauteur/4 octets chacun, reflétant le fait que chaque u-octet couvre 4 pixels (idem chaque v octet).
OriginalL'auteur Settembrini