如何生成图像的 Base64 字符串以在数据 URI 中使用?
我有一个 Base64 图像编码问题,希望有人可以帮助解决。我正在尝试在我的网页中使用数据 uri(即<img src="data:image/png;base64,iVBORw..."/>
with org.apache.commons.codec.binary.Base64
v1.8 生成png图像的base64字符串。
为了生成我使用的 base64 字符串:
Base64.encodeBase64URLSafeString(imageFile)
问题是浏览器无法渲染图像。我将这个生成的字符串与有效的字符串进行了比较,我注意到区别在于 Apache Base64 版本具有“_”和“-”字符,而不是“/”和“+”。从互联网上我看到有不同的 Base64 格式,所以我假设 Apache 的实现与浏览器不兼容。
所以我想知道是否有一个实现 base64 格式的库适合我的目的?我当前的解决方案是仅替换字符,但我宁愿使用库。
根据 javadocBase64.encodeBase64URLSafeString http://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/binary/Base64.html#encodeBase64URLSafe%28byte%5B%5D%29方法,这似乎是设计使然。查看我提供的链接,它在 javadoc 中这样说:
使用 Base64 算法的 URL 安全变体对二进制数据进行编码,但不会对输出进行分块。url 安全变体发出 - 和 _ 而不是 + 和 / 字符。注意:没有添加填充。
因此,您需要确保使用 url-unsafe 变体。这就是所谓的方法Base64编码 http://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/binary/Base64.html#encodeBase64%28byte%5B%5D%29。请改用此方法:
Base64.encodeBase64(imageFile)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)