为什么.ico(Base64)似乎浪费了这么多空间?

时间:2013-03-09 01:47:08

标签: javascript base64 gimp

以下是我的徽标图标的base64表示。它主要是角色A.我在gimp中制作它然后将其转换为base64。

我能做些什么不同的事情,这样我就不会浪费太多空间。我会假设有一些反复编码A,而不是明确地编写它们?

我知道Base64杀掉了顶级的33%,但这不是我的担忧。

在gimp中,我保存到.ico,然后使用online tool.

转换为Base64
  

URL(数据:图像/ vnd.microsoft.icon; BASE64,AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADd3d0B3d3dQ93d3dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3d3d1d3d3UPd3d0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3d3dJd3d3dXd3d3 / 3d3d / wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADd3d3 / 3d3d / 93d3dXd3d0lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN3d3Vbd3d3 / 3d3d / 93d3f / d3d3 / AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN3d3f / d3d3 / 3d3d / 93d3f / d3d1WAAAA

... / snip像这样继续

3 个答案:

答案 0 :(得分:6)

Windows图标文件包含原始未压缩的位图数据,而Base64只是一种以33%的扩展速率对数据进行编码的方式。

根据您的想法,有几种解决方案:

  • 使用PNG ICO格式:这是一个普通的多图像Windows * .ico文件,但位图数据存储为PNG而不是原始位图。仅Windows Vista或更高版本支持此功能。 (PNG用于128x128和更大的图标大小,但出于兼容性和性能原因,位图用于所有较小的尺寸)。
  • 直接使用PNG - 看起来你并没有利用ICO格式的多图像功能,这是一个图标吗?请注意,favicon可以是任何位图格式,而不仅仅是ICO。
  • 使用您的网络服务器的GZIP压缩 - 假设您通过网络提供ICO文件,那么效率低下的存储不是一个问题,因为大多数服务器(包括IIS)都带有HTTP Gzip压缩支持,这实际上缩减了这些内容。 / LI>

除此之外,我/我们需要更多关于你想要完成的事情的信息。

答案 1 :(得分:1)

将其另存为2色调色板GIF文件。

答案 2 :(得分:0)

一旦你知道了Base64的值,就可以编写一个循环来制作那么多我想的。根据循环的长度,它可能会也可能不会节省文件空间。