我正在使用一个背景图片为透明的 1x1 图片来支持使用雪碧图并为一些图标提供替代文本。
我想使用一个数据 URI 来减少 HTTP 请求的数量,但是生成一个透明图片的最小可能字符串是什么?
我意识到我可以使用数据 URI 来代替雪碧图中的实际图片,但是将所有内容都保存在 CSS 中比分散落在各处更容易维护。
我正在使用一个背景图片为透明的 1x1 图片来支持使用雪碧图并为一些图标提供替代文本。
我想使用一个数据 URI 来减少 HTTP 请求的数量,但是生成一个透明图片的最小可能字符串是什么?
我意识到我可以使用数据 URI 来代替雪碧图中的实际图片,但是将所有内容都保存在 CSS 中比分散落在各处更容易维护。
玩弄不同的透明GIF后,有些是不稳定的,会导致CSS故障。例如,如果您有一个<img>
并且使用最小的透明GIF,则可以正常工作,但是,如果您想让您的透明GIF具有background-image
,则这是不可能的。因为一些原因,某些GIF(如以下示例)会导致CSS背景出现问题(在某些浏览器中)。
更短(但不稳定 - 74字节)
data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
我建议使用稍微长一点但更加稳定的版本,如下所示:
data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7
作为另一个提示,不要像某些评论建议的那样省略image/gif
。这会导致在多个浏览器中出现错误。data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'/%3E
最终的长度取决于它被压缩后的情况。
width: auto;
结合使用时,SVG将采用其父级的宽度。当给定固定高度和宽度自动的静态图像(如GIF或PNG)时,将保留其纵横比。 - snazzybouche最小的PNG - 114字节:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=
我认为它必须是一个压缩的透明1x1的GIF文件(82个字节):
data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==
您可以尝试以下SVG数据(60字节):
data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"/>
单独的 SVG 文件看起来像这样(62 个字节):
<?xml version="1.0"?><svg xmlns="http://www.w3.org/2000/svg"/>
参见:
这个人通过GIF规范分解问题。他对于transparent.gif
的解决方案只需37字节:
data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
Header(6个字节)
由“GIF”和版本号组成,通常为
89a
。
逻辑屏幕描述符(7个字节)
不详细介绍文件的这一部分,它指示以下内容:
- 文件大小为1x1像素。
- 有全局颜色表。
- 全局颜色表中有2种颜色,第二种颜色应作为背景色使用。
全局颜色表(6个字节)
每种颜色由3个字节组成,分别是红、绿、蓝。在我们的文件中,第一种颜色是白色,第二种颜色是黑色。
图形控制扩展(8个字节)
用于指示颜色表中的第二种颜色应被视为透明的(也可以用于动画参数,但此文件中没有使用)。
图像描述符(10个字节)
GIF文件实际上可以包含多个“图像”,这样就不必为与背景颜色相同的图像部分指定图像数据。每个图像块都有在整个图像大小中的位置和大小。在上面的文件中,位置是0,0,大小是1x1。
图像数据(5个字节)
一个LZW编码的图像数据块。它需要5个字节来表示图像中的单个像素。压缩算法并不适用于压缩单个字节。
GIF尾部(1个字节)
一个十六进制值为
3B
的字节(ASCII中的;
)表示GIF的结尾。
来源:史上最小的GIF。
。
data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=
//:0
。您可以使用
data:null;,
<img src="data:null;," alt="My null image">
<img src="data:null;," alt="My null image" style="width: 100px;height: 10px;background: red;padding: 25px 16px;margin: 5px 15px;z-index: 5000;display: block ruby;">
或者
<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
我在谷歌上搜索了最小的Base 64视频,但除了这个帖子外什么都没有找到,所以我自己制作了一个:
这是一个1.5 kB的20×20 mp4视频。
data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAAtJtZGF0AAACrQYF//+p3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE2NCByMzEwMyA5NDFjYWU2IC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAyMiAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHlyYW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTEgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IGlwX3JhdGlvPTEuNDAgYXE9MToxLjAwAIAAAAAVZYiEABX//vfJ78Cm6/X2tb9gAQD5AAADBm1vb3YAAABsbXZoZAAAAADgYBEw4GARMAAAA+gAAAPoAAEAAAEAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIwdHJhawAAAFx0a2hkAAAAA+BgETDgYBEwAAAAAQAAAAAAAAPoAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAUAAAAFAAAAAAAJGVkdHMAAAAcZWxzdAAAAAAAAAABAAAD6AAAAAAAAQAAAAABqG1kaWEAAAAgbWRoZAAAAADgYBEw4GARMAAAQAAAAEAAVcQAAAAAAC1oZGxyAAAAAAAAAAB2aWRlAAAAAAAAAAAAAAAAVmlkZW9IYW5kbGVyAAAAAVNtaW5mAAAAFHZtaGQAAAABAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAAETc3RibAAAAK9zdHNkAAAAAAAAAAEAAACfYXZjMQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAUABQASAAAAEgAAAAAAAAAARVMYXZjNTkuNTYuMTAwIGxpYngyNjQAAAAAAAAAAAAAABj//wAAADVhdmNDAWQAM//hABhnZAAzrNlJeeeEAAADAAQAAAMACDxgxlgBAAZo6+PLIsD9+PgAAAAAFGJ0cnQAAAAAAAAWUAAAFlAAAAAYc3R0cwAAAAAAAAABAAAAAQAAQAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAEAAAABAAAAFHN0c3oAAAAAAAACygAAAAEAAAAUc3RjbwAAAAAAAAABAAAAMAAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTkuMzUuMTAw
我知道这个答案并不完全回答你的问题,但我希望它能帮助到那些寻找最小视频可能性的人。