图片

图片形态

雪碧图

优点

  • 减少加载网页图片时对服务器的请求次数
  • 提高页面的加载速度

由所需图片拼成的一张 GIF 图片的尺寸会明显小于所有图片拼合前的大小。 单张的 GIF 只有相关的一个色表,而单独分割的每一张 GIF 都有自己的一个色表,这就增加了总体的大小。 因此,单独的一张 JPEG 或者 PNG sprite 在大小上非常可能比把一张图分成多张得来的图片总尺寸小

缺点

  • 单个图片大小,考虑网络环境比较差的情况
  • 内存使用问题。大量空白你就会最终使用大量的无用的空白。

一个例子是来自于 WHIT TV 的网站,注意这是一个 1299×15000 像素的 PNG 图片。它也被压缩的很好——实际下载大小只有大概 26K,但是浏览器并不会渲染压缩后的图片数据。当这个图片被下载并被解压缩之后

Base64

一种文本格式,显示的是一串文本,而这串文本就是图片本身。

优点

  • 传输性能,减少 HTTP 请求

缺点

  • 增大了体积的开销
    • 图片本身提交增大 1/3
    • 增大 CSS 体积
  • 增加了解码的开销

适用:小图标,例如:Loading 图

用法:一般用在构建中转,打包

Blob URL

压缩或拉伸图片

用 CSS 调整一张图片大小的时,如果纵横比与图片的宽度不一致,则图片会被压缩或拉伸。

解决方案很简单:使用 CSS 的 object-fit。它的功能和给背景图片设置 background-size: cover 类似。

img {
object-fit: cover;
}

object-fit 并非百试百灵。一些图片必须在不裁剪或者不调整大小的情况下显示,并且某些平台会强制用户以特定的尺寸裁剪或上传图片。例如,Dribbble 规定上传的缩略图尺寸为 800 x 600 像素。

图片格式