In this tutorial, you will learn how to convert an image byte[] array into a Base64 encoded string of characters.
Additionally, you might be interested in checking the “Converting byte[] Array to String in Java” tutorial.
Convert Image to a byte[] Array
Let’s assume that we have an image on our computer. Our task is to first convert this image into a byte[] array. Since the image is just a file, we can use the Files class in Java to read image bytes into an array.
byte[] bytes = Files.readAllBytes(pathToImage);
Convert byte[] to a Base64 Encoded String
Once you have an array of bytes, you can easily convert it into a Base64 encoded string. To do that, you can use the Base64 class from java.util package.
String base64EncodedImageBytes = Base64.getEncoder().encodeToString(bytes);
Decode Base64 String into byte[]
Eventually, you will need to decode the Base64 encoded string of characters back into a byte[]. To do that you will use the Base64.getDecoder().decode() method.
byte[] decode = Base64.getDecoder().decode(base64EncodedString);
Let’s have a look at a complete code example.
Convert Image to a Base64 Encoded String
Below is a complete code example that demonstrates how to read image bytes into an array of bytes and then convert this array of bytes into a Base64 encoded string.
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Base64; public class App { public static void main(String[] args) { String imageFilePath = "/Users/sergeykargopolov/Downloads/Design_2-01.png"; Path pathToImage = Paths.get(imageFilePath); if (Files.notExists(pathToImage)) { throw new IllegalArgumentException("Image does not exist at the specified path"); } try { // 1. Convert image to an array of bytes byte[] imageBytes = Files.readAllBytes(pathToImage); // 2. Encode image bytes[] to Base64 encoded String String base64EncodedImageBytes = Base64.getEncoder().encodeToString(imageBytes); System.out.println(base64EncodedImageBytes); // 3. Decode Base64 encoded String back to a byte[] array byte[] decodedImageBytes = Base64.getDecoder().decode(base64EncodedImageBytes); } catch (IOException e) { e.printStackTrace(); } } }
I hope this very short blog post was helpful to you.
There are many other useful tutorials you can find on this site. To find Java-related tutorials, check out the Java tutorials page.
Happy learning!