我在spring mvc应用程序中将我的图像作为base 64解码字符串。 e.g。
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获得的。它完全在浏览器选项卡中打开
答案 0 :(得分:1)
最后我发现了。
this链接上的答案有帮助。
我收到的编码图片:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUUAAAkFCAYAAAD3GsjUAAAgAElEQVR4nOy9eXSb932vqc50fJs2Z+6ZOefeO2dmbm/aSW9ve+MmrZv2Nmmm7TROs7q2Yzl2HNWxtmihZNmSLMd24t=
编码图像部分在以下短语之后开始:
data:image/png;base64,
我不得不跳过那个字符串然后解码图像。
此外,我从同一个线程中发现额外的字符串不应该阻止我们解码。
在同一论坛中,建议在转换编码图像用户时采用以下方法:
InputStream stream = new ByteArrayInputStream(Base64.decode(image.getBytes(), Base64.DEFAULT));
在同一个帖子中参考@Wand Maker的答案。