2017-08-06 1 views
0

Je veux convertir les images de mon application en base64 afin qu'il n'apparaisse pas dans la galerie. J'ai essayé différentes techniques. L'image provient d'un fichier zip, donc c'est un tableau d'octets à ce moment-là. La longueur de la base64 change lorsque je change la taille du tableau d'octets. Quelle est la taille de tableau d'octets appropriée? Et l'image encodée en base64 ne fonctionne pas aussi. Le code principal est String encodedImage = Base64.encodeToString (buffer, Base64.DEFAULT); buffer est le tableau d'octets (102400) et il contient également l'image. L'image est un fichier 7KB et la sortie est 400KBAndroid Image to Base64

+0

Vous pouvez utiliser la classe Android Base64: String encodedImage = Base64.encodeToString (byteArrayImage, Base64.DEFAULT); –

+0

J'ai inclus votre réponse dans ma question. Et ça ne marche pas pour moi. –

+0

Solution de Wtong. Si vous voulez empêcher les images d'apparaître dans la galerie, créez un fichier .nomedia dans ce répertoire et l'indexeur l'ignorera –

Répondre

0

Vous pouvez essayer la fonction suivante pour convertir l'image en Base64:

public void toStringImage(Bitmap bmp) { 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
    byte[] imageBytes = baos.toByteArray(); 
    String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT); 
} 

Au-dessus de la fonction prend Bitmap l'image et le convertit en Base64 encoded string. Cela fonctionne dans mon projet et j'espère que cela vous aidera aussi.