package it.softecspa.fileproxy.util; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import javax.imageio.ImageIO; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class ImageBase64Manager { /** * Decode string to image * @param imageString The string to decode * @return decoded image */ public static BufferedImage decodeToImage(String imageString) { BufferedImage image = null; byte[] imageByte; try { BASE64Decoder decoder = new BASE64Decoder(); imageByte = decoder.decodeBuffer(imageString); ByteArrayInputStream bis = new ByteArrayInputStream(imageByte); image = ImageIO.read(bis); bis.close(); } catch (Exception e) { e.printStackTrace(); } return image; } /** * Encode image to string * @param image The image to encode * @param type jpeg, bmp, ... * @return encoded string * @throws IOException */ public static String encodeToString(BufferedImage image, String type) throws IOException { ByteArrayOutputStream bos = null; try { bos = new ByteArrayOutputStream(); ImageIO.write(image, type, bos); byte[] imageBytes = bos.toByteArray(); BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(imageBytes); } catch (IOException e) { throw e; } finally { if (bos!=null) { try { bos.close(); } catch (IOException e) { /* Nessuna oparazione */ } } } } /* public static void main (String args[]) throws IOException { // Test image to string and string to image start * BufferedImage img = ImageIO.read(new File("files/img/TestImage.png")); BufferedImage newImg; String imgstr; imgstr = encodeToString(img, "png"); System.out.println(imgstr); newImg = decodeToImage(imgstr); ImageIO.write(newImg, "png", new File("files/img/CopyOfTestImage.png")); // Test image to string and string to image finish } */ }