不带base64的HTML内嵌图像

时间:2012-11-12 18:26:15

标签: javascript html image web

好吧所以我知道我可以将图像转换为base64,然后将其添加到我的html中。 base64的问题在于,它产生的数据比我的png图像文件大33%,这是一个最大压缩的300KB css精灵。

有没有办法在不使用base64的情况下传输图像数据,然后将其组装成客户端上的图像?

我正在考虑传输十六进制图像数据,然后使用javascript将其转换为base64。似乎可能,但非常多余,因为它会立即从base64解码回来,只是为了显示。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我刚刚做了一些测试来检查文件大小,我发现没有显着差异。

sizeof(gzip(index.html + sprite.png))= 301KB

sizeof(gzip(index_inline_b64_sprite.html))= 302KB

虽然base64文本比png本身大约33%,但一旦gzip它似乎没有任何显着差异。

一旦你认为任何解决方案都可能有严重的跨浏览器,甚至可能存在奇怪的十六进制安全问题被附加到html文件,在我的情况下,它似乎是一个更好的解决方案,只需坚持使用base64。

还要感谢Barmar指出html中的ascii hex会大得多,我起初并没有意识到这一点。