在Java中将DataURL图像转换为图像文件

Bah*_*eib 3 javascript java html5 servlets image

我在我的java servlet中接收到图像DataURL,它看起来像:

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAA...
Run Code Online (Sandbox Code Playgroud)

我需要将其保存为图像文件,我该怎么做?

Pau*_*gas 7

最简单的方法1如下:

String str = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAA...";
byte[] imagedata = DatatypeConverter.parseBase64Binary(str.substring(str.indexOf(",") + 1));
BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(imagedata));
ImageIO.write(bufferedImage, "png", new File("img.png"));
Run Code Online (Sandbox Code Playgroud)

笔记

  1. 为了使用该类javax.xml.bind.DatatypeConverter,您需要Java 6 o更高.

  • 从 Java 8 开始,您应该使用 `byte[] imagedata = java.util.Base64.getDecoder().decode(str.substring(str.indexOf(",") + 1));` 而不是 DatatypeConverter (6认同)