我正在尝试使用 data uri 方案在浏览器上解码 base64 编码的图像。
这就是我的 html 的样子:
<img src="data:image/png;base64,base64_string_here"
alt="base64 image name" width="600" height="400" border="1" />
Chrome 和 Firefox 无法解码这些图像并显示默认的“图像无法加载”图像。我已验证传递给浏览器的 Base64 图像是否正确。事实上,Safari 显示相同的图像没有问题。
我尝试让浏览器解码类似的 base64 编码的 pdf,但这也不起作用。 (同样,它不适用于 Chrome 和 Firefox,但适用于 Safari。)
<img src="data:application/pdf;base64,base64_string_here"
alt="base64 pdf name" width="600" height="400" border="1" />
Chrome版本:18.0,FF版本:11.0
有谁知道这里可能出了什么问题? (如果有帮助的话 - 我试图显示的 Base64 编码图像是 USPS 运输标签)。
我知道这是一个非常老的问题,但我最近遇到了同样的问题。 (源于 USPS 标签返回)我通过将 Base64 字符串编码的 TIFF 转换为 Base64 字符串位图图像来修复它(尽管您可以使用您希望的任何图像类型)。
我使用 C# 来转换图像:
Byte[] arrTiff = Convert.FromBase64String(FixBase64ForImage(oeVS.LabelImage));
System.IO.MemoryStream msTiff = new System.IO.MemoryStream(arrTiff);
Bitmap bmpTiff = new Bitmap((Bitmap)Image.FromStream(msTiff));
System.IO.MemoryStream msBmp = new System.IO.MemoryStream();
bmpTiff.Save(msBmp, System.Drawing.Imaging.ImageFormat.Bmp);
Byte[] arrBmp = msBmp.ToArray();
string sBMP64 = Convert.ToBase64String(arrBmp);
然后在 html/javascript 中,您可以使用它来显示标签,其中 sBMP64 是上面的结果。
<img src='data:image/bmp;base64,sBMP64'>
BMP 适合我的目的,但这里有一个浏览器支持的图像表:https://en.wikipedia.org/wiki/Comparison_of_web_browsers#Image_format_support https://en.wikipedia.org/wiki/Comparison_of_web_browsers#Image_format_support
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)