11
votes

Code Android pour convertir la chaîne de base64 en bitmap

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.


1 commentaires

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? ^^


3 Réponses :


21
votes

En supposant que vos données d'image figurent dans une chaîne appelée myImageData, les éléments suivants doivent faire le truc: xxx

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 .

Remarque, je n'ai pas exécuté ce code, vous aurez donc à doubleté pour les erreurs.


1 commentaires

Dans mon cas: octet [] imagebitmap = base64.decode (mencodedimagedata, base64.default);



8
votes

EDIT: L'article accepté a maintenant été mis à jour pour copier ma réponse ci-dessous, soit correct strong>

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)
);


2 commentaires

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 )



3
votes

écrire la méthode simple passez la chaîne de base64 et il retournera l'objet bitmap xxx


1 commentaires

Cela a fonctionné pour moi. Pouvez-vous expliquer cette conversion théoriquement ??