标签:就是 The chrome .net 选择 指令 sam 矢量 联网
首先,我们要清楚的是,图片从类型上分,可以分为 位图 和 矢量图。
然后,我们按压缩划分,可以将图片分为 无损压缩 和 有损压缩。
最后,究根结底,我们需要知道在计算机中,像素是用二进制来表示的。不同图片格式中像素与二进制位数之间的对应关系是不同的。一个像素对应的二进制位数越多,那么它可以表示的颜色种类就越多,成像效果也就越细腻,文件体积相应也会越大。
一个二进制位表示两种颜色 【 0|1 <——对应——> 黑|白 】,如果一种图片格式对应的二进制位数有 n 个,那么它就可以呈现 2^n 中颜色。例如:
OK,知道了这些基础知识,我们就按图片出现的顺序,一一讲解下常用的图片知识吧!
早期使用的图片格式,叫 BMP,取自英文单词 BitMap,Windows 中文版译作 位图,它的文件结构很简单,没有压缩,一个一个像素地记录下来。
如果你的系统是 Windows,你可以打开 画图 工具,然后点击另存为,你可以看到保存的选项中有个 24位位图 的格式,即 1600 万色的图片。
当然,历史总在前进,BMP 这种没有压缩的图片格式,逐渐被后起之秀代替了。
不知道为什么,查不到 JPG、PNG、GIF 的出现顺序,下面只好按我个人记忆方式来编文章段落。
关键字:有损压缩、体积小、加载快、不支持透明
简要介绍:
JPEG/JPG 格式,是应用最广泛的图片格式之一,特点如下:
在合适的场景下,即便我们将图片体积压缩至原有体积的 50% 以下,JPG 仍能保持住 60% 的品质,且因为 JPG 格式以 24 位图存储单个图,可以呈现多达 1600 万种颜色,足以满足大多数场景,
适用场景:
关键字:无损压缩、质量高、体积大、支持透明
简要介绍:
PNG(可移植网络图形格式)是一种无损压缩的高保真的图片格式,它的压缩比高于 GIF,支持图像透明,可以利用 Alpha 通道调节图像透的明度。
PNG 分 PNG-8 和 PNG-24。
2^8 = 256,2^24 = 1677216
适用场景:
关键字:支持动画
简要介绍:
GIF 格式,不仅仅支持静止图片,也可以支持动画,并且支持透明背景图像,适用于多种操作系统,体积很小,网上小动画很多是 GIF 格式。但是色域不太广,只支持 256 种颜色,这意味着颜色种类少。
GIF 格式的压缩率一般在 50% 左右。
适用场景:
关键字:文本文件、体积小、不失真、兼容性好
简要介绍:
SVG(可缩放矢量图形)是一种基于 XML 语法的图像格式,是可缩放的矢量图形。与 JPG、PNG、GIF 等位图不同,SVG 可以直接用代码来描绘图像,并通过任意文字处理工具打开 SVG 图像,通过改变部分代码来使图像具有交互功能,并可以随时插入到 HTML 中通过浏览器来观看。
SVG 格式的图片可以任意放大图形显示,并且不会损失图片质量;SVG 格式可编辑和可搜寻;SVG 格式平均来讲,比 JPG 和 GIF 格式文件要小,并且下载也比较快。
SVG 文件通常是极小的,但是当图形的复杂度变高的时候,SVG 文件大小会随之上升,因为 SVG 在渲染的时候需要比像素图更多的计算能力,这也意味着性能的损耗。所以在 Logo 等图上,应尽可能简洁。
适用场景:
关键字:文本文件、依赖编码、小图标解决方案
简要介绍:
Base64 并非一种图片格式,而是一种编码方式,它类似于雪碧图,是作为小图标解决方案而存在的。和雪碧图一样,Base64 图片的出现,也是为了减少加载网页图片时对服务器的请求次数,从而提升网页性能。Base64 是作为雪碧图的补充而存在的。
Base64 是一种用于传输 8 Bit 字节码的编码方式,通过对图片进行 Base64 编码,我们可以直接将编码结果写入 HTML 或者写入 CSS,从而减少 HTTP 请求的次数。
适用场景:
为什么大图不使用 Base64?
因为 Base64 编码后,图片大小会膨胀为源文件的 4/3,如果将大图编码到 HTML 或者 CSS 中,这样后者的体积增加,即便减少了 HTTP 请求,也无法弥补庞大的体积带来的性能开销。
如何获取:
关键字:年轻的全能型选手
简要介绍:
2010 年由 Google 提出,转为 Web 开发的一种旨在加快图片加载速度的图片格式,支持有损压缩和无损压缩。
WebP 像 JPEG 一样对图片细节丰富,像 PNG 一样支持透明,像 GIF 一样可以显示动态图片。
官方介绍:与 PNG 相比,WebP 无损图像的尺寸缩小了 26%。在等效的 SSIM 质量指数下,WebP 有损图像比同类 JPEG 图像小 25-34%。 无损 WebP 支持透明度(也称为 alpha 通道),仅需 22% 的额外字节。对于有损 RGB 压缩可接受的情况,有损 WebP 也支持透明度,与 PNG 相比,通常提供 3 倍的文件大小。
适用场景:
由于 WebP 支持情况仅 Chrome、UC 等几家浏览器支持,所以局限性较大,目前暂不考虑使用。
参考自 Can I Use 网站中的浏览器支持程度:webp
雪碧图,CSS Sprites,听起来就很清爽的一种图片,刚开始的时候 jsliang 以为是大街小巷上卖的 3 块钱瓶装雪碧饮料上的图片,后来知道压根不是同一码事。
雪碧图不属于图片格式,而是一种图片应用形式。但是因为它在前端赫赫有名,经常使用,故此将其记载下来。
雪碧图又叫精灵图,因为 Sprites 的原因叫 “雪碧”,出现的原因是随着网速的提升,同时因为请求次数过多的时候会卡网页,所以我们就将 N 张小图集成到一张大图上,从而提升页面打开的速度。这种多张小图放在一张大图上的操作,就叫做精灵图(雪碧图 - CSS Sprites)
那么,平时如何使用雪碧图呢?
.img{background:url(../images/img.png) no-repeat;}
.my-head{height:160px;width:120px;background-position:0 0;}
.my-picture{height:292px;width:1253px;background-position:0 -160px;}
复制代码
@mixin img{background:url(../images/img.png) no-repeat; }
@mixin my-head{height:160px;width:120px;background-position: 0 0;}
@mixin my-picture{height:292px;width:1253px;background-position: 0 -160px;}
复制代码
如上面代码所示,现在网上有非常多的雪碧图制作工具,我们只需要将小图发到工具上去,就可以生成大图,同时获得它的 css/sass 代码,而不需要自己一个一个定位。
这是 Windows 版本的工具,网上有很多雪碧图/精灵图制作工具,这里就不推荐本人使用的了。
MDN 定义:图像精灵(sprite,意为精灵),被运用于众多使用大量小图标的网页应用之上。它可取图像的一部分来使用,使得使用一个图像文件替代多个小文件成为可能。相较于一个小图标一个图像文件,单独一张图片所需的 HTTP 请求更少,对内存和带宽更加友好。
至此,我们对图片的介绍就结束了,在这里我们列个表进行汇总:
格式 | 使用场景 |
---|---|
JPG/JPEG | 1. 大的背景图; 2. 轮播图; 3. Banner 图 |
PNG | 1. 小 Logo; 2. 透明背景 |
GIF | 动态图片 |
SVG | 能适应不同设备且画质不能损坏的图片 |
Base64 | 大小不超过 2KB,且更新率低的图片 |
雪碧图 | 小图太多的时候,集中成一张图片减少 HTTP 请求 |
雪碧图不属于格式,但属于一种应用形式
如果小伙伴有其他的好用资源推荐,可以 QQ 或者评论留言:
标签:就是 The chrome .net 选择 指令 sam 矢量 联网
原文地址:https://www.cnblogs.com/gaoht/p/10482942.html