Java – How to convert a byte array of an image to a base64 encoded string representing a jpg

How to convert a byte array of an image to a base64 encoded string representing a jpg… here is a solution to the problem.

How to convert a byte array of an image to a base64 encoded string representing a jpg

I’m writing an Android app that takes a photo and uploads it.

The API requires a base 64-encoded string representing the jpg to upload.

The Camera API gave me a byte [].

How can I convert this byte array to a base64 encoded string, making sure I keep the jpg format?

Currently, I’m trying String encoded = Base64.encodeToString(byteArray, Base64.NO_WRAP);

But this is somehow invalid, giving me a bunch of AAAAAAAAA in the logs instead of the real base64 encoded strings.

Thanks for your help

Edit:

Actually when I checked out the content of the encoded above, I got it

  /9j/ 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 /8AAEQgBIAIAAwEiAAIRAQMRAf/ EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCxAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqK jpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+ Pn6AQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgsRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZm qKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8AjjHNLCPlrrG0y0P/ ACxAPtxVVtHth9wFfpXL7BmqxCOdfhG9Mg1LgHaTzVzU9LaCykeKTLcYBFU1zsTPXHNZyi47msJqWw9gNsfGetKV/eZ9BTiu6OM5IwTSnoD9KgoIkzKR6imsBn0qWJWE4ypGR6Uko56UcrBMYFBKe9XNuYxVZR/ q8jjNXB908UDISPkH1qaIfJUbD92ccHNSQsAuDWtJ2ZnUV0TBar3K4CEdmqxvWoLlgUXnuK3k9DKK1JV5VfpSx/d/Gmx8qtKhwMe9cZ0j42xIP96ns21gc1CDiUf71OkOJOPxpAR3Dfvs+ wpsjnyz6Uy5bEin1FGSYmzQMr78w5x6VXf/AI+STUhfEZFRStiYe4FAx+nHZq0a+rGun6Vy1thdXhP/ AE0H611TCtI7GNTcYTTCaeaYaozGcUxgDTyKjNAGbqV09rGCgyScc9qwHuZ7iTBVnJ9K29YH7pPrVSzUeQMAZzQBBFZE4Mp/4CKsqixjCqBVuO1klG77q+ pqykEUQ6bm9TTGUo7WSXBAwPU1cjtIouWO9vfpTnnCjriqz3JPCimBbaUKOOBVaS5HQc1WZmbqaTbQArys/Un6UzaakAxRQAwJSYp9IaYEZGO9NxUhppoAux8oPpVy1XKzD/ YqpDzGv0q7ZffdfVDTJMmdcSVow8wofaqd0uHNXrbm3T6UIC9pXy6lAf8AaFddtrj7L5LuJvRwf1rtStJiKsyZiNUGStaRco30rPdaQFMr7Um2pytJsqkIiC04LUgSnBaoCMLShalCU8JQBEEpwSpQtOCe1AEQWnbamCU4J7UAQhM04JUwT2p4SmBBspRH7VY2e1KEpAYDR1E0dX CPaoXHtWpzoytVQf2fJ7AH9a58qAK6XU1zp0/+4a51h8ufSuav0OvD7MUL+5XjuRSxkB04pV5hHsaBgMp5rGHxI3lsbqqrIMgHimvbRMOUFTIMxr9Kdtr0rI47sxr23jiKlOOelERZo8lcH61b1GP5EPvV

But when it actually published to the server (using Square’s Retrofit library), I received hundreds of thousands of AAAAAs after that, causing the server to crash.

Still, the recorded encoded string doesn’t seem long enough to encapsulate all the data associated with LG G3 photos.

Solution

Use

byte [] data = Base64.decode(base64str);

You need to reference the commons codec extracted from your project for that code to work.

Related Problems and Solutions