我遇到了一件有趣的事情...如果我使用此代码将图像下载为 Base64 编码字节数组的字符串,它可以正常工作
data:image/png;base64,<String>
但我试图将相同的图像编码为 Base32 并将其称为
data:image/png;base32,<String>
但这种方式行不通。也许我使用了一些错误的协议或其他东西...... :(
所以我的问题是......如何为 img 标签调用 Base32 图像?
谢谢
如果您的意思是浏览器不显示图像,则意味着浏览器不支持 base32。我对 Iceweasel4、Firefox 3 和 Chrome 12 也有同样的问题。IE7 不显示 base64 或 base32 编码的内联图像。
这是我用于测试的文件,从http://www.sweeting.org/mark/blog/2005/07/12/base64-encoded-images-embedded-in-html窃取:
test1.html 在 Firefox、Iceweasel、Chrome 中显示良好:
<img src="data:image/gif;base64,R0lGODlhUAAPAKIAAAsLav///88PD9WqsYmApmZmZtZf
YmdakyH5BAQUAP8ALAAAAABQAA8AAAPbWLrc/jDKSVe4OOvNu/9gqARDSRBHegyGMahqO4R0bQcj
IQ8E4BMCQc930JluyGRmdAAcdiigMLVrApTYWy5FKM1IQe+Mp+L4rphz+qIOBAUYeCY4p2tGrJZe
H9y79mZsawFoaIRxF3JyiYxuHiMGb5KTkpFvZj4ZbYeCiXaOiKBwnxh4fnt9e3ktgZyHhrChinON
s3cFAShFF2JhvCZlG5uchYNun5eedRxMAF15XEFRXgZWWdciuM8GCmdSQ84lLQfY5R14wDB5Lyon
4ubwS7jx9NcV9/j5+g4JADs=">
test2.html 没有显示在我拥有的任何浏览器中。
<img src="data:image/gif;base32,I5EUMOBZMFIAADYAUIAAACYLNL77776PB4H5LKVRRGAK
MZTGM3LF6YTHLKJSD6IEAQKAB7YAFQAAAAAAKAAA6AAAAPNVROW47YYMUSKXXA4OXTN375QKQBCD
JEIEO6QMQYY2Q2R3QR2G2BZDEEHQJYATAJA4656QTFXMQZDGOQABY5RIUAYLK2YCSTMFWLSFFDGU
QQPPRST6F6FOTBZ7VIQOAQCRQ6BGHCTWWRVMSZPB7XF36ZTGY2YBNBUII4IXOJZITDDODYRQM34S
SOJJC33GHYMW3B4CRF3I5CFAOCPRQ6D6PN6XW6JNQGOIPBVQUGFHHDNTO4CQCKCFC5RGDPBGMUNZ
XHEFQNXJ7F46OUOEYAC5PFOECUK6AZLFTVZCXDHQMCTHKJB44JJNA7MOKHLYYAYHSLZKE7RON4CL
XDY7JVYV674PT6QOBEADW===">
我使用 Python 的 base64 模块中的 b64decode 和 b32encode 从 base64 编码图像创建 base32 编码图像。
根据https://www.rfc-editor.org/rfc/rfc2397,支持的格式是 base64 和纯 ASCII(对于那些超出可打印 7 位字符范围的字符,您使用标准的 %XX 十六进制编码。 )
IE 显然在 IE8 之前不支持任何内嵌图像。