页面优化小总结 (图片类型)

兔兔这么可爱,拿来当首图肯定更招人喜欢

图片在网页中十分常见。高质量的图片能够使你的网站更加出色,同时也伴随着一定的性能损耗。图片文件较大,会减缓页面的加载。如果是一个带宽较低的用户,用户体验将会特别差。所以,开发一个高质量的网页,需要掌握一些图片优化的方法。

下面是对图片相关知识的整理,以及一些图片相关的优化技巧。

图片的类型(矢量图和位图)

图片的压缩方式(有损压缩和无损压缩)

常见图片格式

JPEG

  • 有损压缩,不支持透明,不支持动画;
  • 可以通过压缩控制图片的大小;
  • 常用压缩比例60%~80%;
  • 适用于存储摄影,写实图像;
  • 不适用于有文字及线条的图片压缩;

PNG

PNG可分为三种格式:PNG8,PNG24,PNG32。后面的数字代表这种PNG格式最多可以索引和存储的颜色值。”8″代表2的8次方也就是256色,而24则代表2的24次方大概有1600多万色。

关于透明:

  • PNG8支持索引透明和alpha透明,体积小,用的比较多
  • PNG24不支持透明;
  • 而PNG32在24位的PNG基础上增加了8位的alpha通道透明,也就是说可以存储从完全透明到完全不透明一共256个层级的透明度(即所谓的半透明)。

PNG的特性:

  • 无损压缩;
  • 存储灰度图像时,深度可多到16位;
  • 存储彩色图像时,深度可多到48位;
  • 并且可以存储多到16位的α通道数据;
  • 对于复杂的图像,png图片文件较大,不适用用web网页;

JPEG和PNG的比较

  • 色彩层次丰富,颜色较多的图像用JPEG存储;
  • 颜色简单对比强烈的用PNG存储;
  • 对品质要求较高的图片可以用PNG存储,如按钮,导航背景等;
  • 要求不是太高的可以用JPG存储降低图片的大小;
  • 特殊情况,图片颜色丰富但尺寸较小可以尝试用PNG存储;

GIF

无损压缩,支持全透明,支持动画; 8位图片格式,最多支持256色; 隔行扫描,加载较快; 适用于颜色不太复杂的图片,如Logo,icon图标;

APNG

  • 无损压缩,支持透明度,支持动画;
  • 24位图片格式,显示图像更清晰;
  • 兼容较差,仅支持部分浏览器;

WebP

在之前的文章“图片的新型格式:webP的工作原理”中已经介绍过;

WebP是一种支持有损压缩和无损压缩的图片文件格式,支持动画和透明度,根据Google的测试,有损压缩后的WebP图片相比于等效质量指标的JPEG图片减少了25%~34%的体积,大大减少了页面的加载时间。

GIF、APNG、WEBP比较

(截图来源:aotu.io/notes/2016/…

通过两张图片对比GIF和APNG,图一是GIF,图二是APNG

GIF:

最多支持 8 位 256 色,色阶过渡不好,图片具有颗粒感 不支持 Alpha 透明通道,边缘有杂边

APNG:

支持 24 位彩色图片 支持 8 位 Alpha 透明通道 向下兼容 PNG(如果浏览器不支持,显示静图)

对比中发现APNG比gif和webp体积小,加载快;

SVG

概念:

SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失 SVG 是万维网联盟的标准 SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体

与其他图像格式相比,使用 SVG 的优势在于:

SVG 可被非常多的工具读取和修改(比如记事本) SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强。 SVG 是可伸缩的 SVG 图像可在任何的分辨率下被高质量地打印 SVG 可在图像质量不下降的情况下被放大 SVG 图像中的文本是可选的,同时也是可搜索的(很适合制作地图) SVG 可以与 Java 技术一起运行 SVG 是开放的标准 SVG 文件是纯粹的 XML

雪碧图

将许多的小图标合并到一张图片上,请求一张图片,通过截取获取图标; 减少HTTP请求次数,提高页面加载速度

base64

  • 以“data:image/png;base64”开头的字符串代理src的url
  • 优点:减少网络请求;
  • 缺点:生成的字符串的体积可能大于原来的图片,造成CSS体积增大,可读性变差,兼容性较差,IE8以下不兼容,IE8以上限制了URL的大小;
  • 对于极小或者极简单的图片,例如只有几像素的图片不用考虑跨域问题不想页面的图片缓存,可以用base64编码

选择图片格式

优化总结:

1.使用其它技术代替图片,如边框,圆角,阴影,渐变等可以用CSS设置; 2.可以用矢量图代替; 3.选择合适的图片格式; 4.使用雪碧图,base64图片减少http请求; 5.预加载 6.懒加载

转载于:https://juejin.im/post/5cf5ea646fb9a07f042034b9

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值