How to Convert an ImageIcon to a Base64 encoded String in Java
To convert an ImageIcon to a Base64 encoded string, we first need to convert the ImageIcon to a BufferedImage. The BufferedImage then needs to be converted to a ByteArray using a ByteArrayOutputStream. Then using a Base64 encoder, we can convert the ByteArray to a Base64 String.
Particularly useful when trying to save an image loaded into a JLabel to the database.
To get the image from the JLabel, we need to get the ImageIcon from the JLabel using getIcon();
Particularly useful when trying to save an image loaded into a JLabel to the database.
To get the image from the JLabel, we need to get the ImageIcon from the JLabel using getIcon();
import com.itextpdf.text.pdf.codec.Base64;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import javax.imageio.ImageIO;
import java.awt.Graphics;
private String ConvertImageIconToBase64String(ImageIcon ii) {
// Create a buffered image of the size of the original image icon
BufferedImage image = new BufferedImage(ii.getIconWidth(),
ii.getIconHeight(), BufferedImage.TYPE_INT_RGB);
// Create a graphics object to draw the image
Graphics g = image.createGraphics();
// Paint the icon on to the buffered image
ii.paintIcon(null, g, 0, 0);
g.dispose();
// Convert the buffered image into a byte array
ByteArrayOutputStream b = new ByteArrayOutputStream();
try {
ImageIO.write(image, "jpg", b);
} catch (Exception ex) {
// Handle the exception
}
byte[] imageInByte = b.toByteArray();
// Return the Base64 encoded String
return Base64.encodeBytes(imageInByte);
}
Comments
Post a Comment