HI Stackoverflow Team, j'ai un problème dans la conversion de la chaîne de base64 en bitmap dans Android. J'utilise l'appareil photo pour récupérer l'image et je suis convertir l'image en chaîne de base64 en poste sur le serveur. Je veux montrer cette image dans l'imageView alors comment puis-je afficher l'image dans l'imageView après avoir récupéré l'image de la caméra. Aidez-moi s'il vous plaît à résoudre le problème. P>
3 Réponses :
En supposant que vos données d'image figurent dans une chaîne appelée myImageData, les éléments suivants doivent faire le truc: pour le décodage de base64, vous pouvez utiliser http://iharder.sourceforge.net/current/java/base64/ comme Android ne contient pas de support de base64 avant 2.2 . P> Remarque, je n'ai pas exécuté ce code, vous aurez donc à doubleté pour les erreurs. p> p>
Dans mon cas: octet [] imagebitmap = base64.decode (mencodedimagedata, base64.default); code>
La réponse acceptée n'est pas correcte au moins dans Jellybean, Kitkat ou Lollipop. Vous devez utiliser ce qui suit qui fonctionne pour les images JPEG, PNG ou GIF. P> byte[] imageAsBytes = Base64.decode(myImageData.getBytes(), Base64.DEFAULT);
ImageView image = (ImageView)this.findViewById(R.id.ImageView);
image.setImageBitmap(
BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length)
);
Tur - n'est-ce pas le même code que TUOMASR (qui est la réponse acceptée)?
@AShestoashes Il est maintenant qu'ils ont mis à jour leur réponse à la copie de la mine ( Stackoverflow.com/posts/3801881/Revisions )
écrire la méthode simple passez la chaîne de base64 et il retournera l'objet bitmap
Cela a fonctionné pour moi. Pouvez-vous expliquer cette conversion théoriquement ??
Juste pour une meilleure compréhension: pourquoi voudriez-vous encoder l'image en Base64 d'abord, puis envoyez-le décoder pour l'afficher à nouveau dans l'imageView? Ne serait-il pas plus facile de la récupérer en premier, l'afficher dans l'imageView puis la codant dans la base64 pour l'envoyer au serveur? ^^