我将BufferedImage转换为Base64但是如何将它再次转换为Image?

时间:2016-12-28 18:23:35

标签: java base64 decode encode bufferedimage

我将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);
}

0 个答案:

没有答案