我将BufferedImage
转换为Base64格式。
如何将此Base64字符串再次转换为Image?
我总是收到错误:image == null
try {
BufferedImage bimg;
Robot bot;
bot = new Robot();
bimg = bot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
ImageIO.write(bimg, "PNG", new File("C:\\Users\\****\\Desktop\\client.png"));
/// encode
String imageString;
try (ByteArrayOutputStream bos = new ByteArrayOutputStream()) {
ImageIO.write(bimg, "PNG", bos);
byte[] imageBytes = bos.toByteArray();
imageString = Base64.getEncoder().encodeToString(imageBytes);
}
System.out.println("Base64 -" + imageString);
/// decode
String decoded = new String(Base64.getDecoder().decode(imageString));
// System.out.println(decoded);
byte[] imageByte2 = decoded.getBytes();
ImageIO.write(ImageIO.read(new ByteArrayInputStream(imageByte2)), "PNG", new File("C:\\Users\\***\\Desktop\\decoded.png"));
} catch (AWTException | HeadlessException | IOException e) {
JOptionPane.showMessageDialog(null, e);
}