【发布时间】:2014-12-19 17:43:06
【问题描述】:
我在我的 spring mvc 应用程序中将我的图像作为 base 64 解码字符串。例如
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUUAAAkFCAYAAAD3GsjUAAAgAElEQVR4nOy9eXSb932vqc50fJs2Z+6ZOefeO2dmbm/aSW9ve+MmrZv2Nmmm7TROs7q2Yzl2HNWxtmihZNmSLMd24t=
我正在尝试将其保存为 png 图像:
byte[] imageByte = Base64.decodeBase64(base64encodedImage);
String directory = "D:\\Image Capture\\sample.png";
FileOutputStream outputStream = new FileOutputStream(directory);
outputStream.write(imageByte);
outputStream.flush();
outputStream.close();
但它正在将我的图像另存为
我无法弄清楚原因。此编码图像是使用 JavaScript 中的 canvas.toDataUrl 获得的。它完美地在浏览器选项卡中打开。
【问题讨论】:
-
每张图片都有一个格式。你的有哪一个?你说你想把它保存为PNG,但它目前是哪种格式?如果你有它,例如 JPG,那么你首先必须将它转换为 PNG。因此,您的步骤是:1. 解码 Base64,2. 将 X 格式转换为 PNG,3. 保存文件。
-
@Socrates :从编码的图像数据中我可以看到它是 png,因为它以 data:image/png 开头
-
尝试一件事!获取现有的工作 PNG 并将其编码为 Base64。然后使用上面的 Java 代码并再次解码。这样你就可以看到功能了!
标签: java spring-mvc base64