【问题标题】:Convert DataURL image to image file in java在java中将DataURL图像转换为图像文件
【发布时间】:2016-03-29 05:10:36
【问题描述】:

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

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAA...

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

【问题讨论】:

  • 通常有一些你实际尝试过的代码会提供更好的响应。您可能需要对它进行解码并像保存任何其他文件一样保存它。希望这能让你朝着正确的方向前进。

标签: javascript java html image servlets


【解决方案1】:

最简单的方法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"));

注意事项

  1. 要使用javax.xml.bind.DatatypeConverter 类,您需要Java 6 或更高版本。

【讨论】:

  • 不应该是str.substring(str.indexOf(",") + 1)吗?如果图像的 MIME 类型是 image/jpeg,您可能不想将其写为 PNG。
  • 是的+ 1。谢谢! ;) ② 嗯...我不知道。可能是 想写入 PNG 格式...但是 OP...我不知道。 :P
  • 感谢您的回答我已经这样做了,但是我遇到了一些错误,BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(imagedata)); 之后出现异常
  • 有什么异常?您可以使用pastie.org 共享输出/代码。 :)
  • 从 Java 8 开始,您应该使用 byte[] imagedata = java.util.Base64.getDecoder().decode(str.substring(str.indexOf(",") + 1)); 而不是 DatatypeConverter
猜你喜欢
  • 2018-09-12
  • 1970-01-01
  • 2018-09-22
  • 2020-11-12
  • 1970-01-01
  • 1970-01-01
  • 2019-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多