前端的图⽚优化的6种⽅案
前端的图⽚优化的6种⽅案
1、使⽤base64编码代替图⽚
场景:适⽤于图⽚⼤⼩⼩于2KB,页⾯上引⽤图⽚总数不多的情况 原理:将图⽚转换为base64编码字符串inline到页⾯或css中 优势:减少http的请求次数,并可以放到后台数据库中,只传输字符串,有较多的构建⼯具可以直接实现劣势:这种⽅法仅限于图⽚总数较少,⽽且图⽚⼤⼩⼩于2KB的情况。否则图⽚字符串会变得很长很长
杨幂零祝福刘恺威
2、合并图⽚sprite(雪碧图)
场景:任何⽤到页⾯图⽚的场景 原理:将多个页⾯上⽤到的背景图⽚合并成⼀个⼤的图⽚在页⾯中引⽤ 优势:可以有效的较少请求个数,⽽且,⽽不影响开发体验,使⽤构建插件可以做到对开发者透明。适⽤于页⾯图⽚多且丰富的场景。劣势:⽣成的图⽚体积较⼤,减少请求个数同时也增加了图⽚⼤⼩,不合理拆分将不利于并⾏加载
瓷都是哪个城市
3、使⽤css、svg、canvas或iconfont代替图⽚
css代替图⽚
场景:适⽤于移动端或较⾼级的浏览器,⽽且绘制的图案较为简单。 原理:css⽅式可以⽤来绘制相对简单的团来代替图⽚,⼀般使⽤before或者after伪元素来丰富图案的复杂度。 优势:具有实现简单,图⽚体积⼩的特点,可以实现简单的动态效果劣势:也受限于css的兼容性特点,绘制复杂图案困难svg的描述和适⽤场景上⽂已说明。
canvas代替图⽚
场景:需要⾼性能的图⽚或动画 原理:适⽤html5的canvas元素绘制创建图⽚优势:整个就是画2D图形时,页⾯渲染性能⽐较⾼,页⾯渲染性能受图形复杂度影响⼩,性能只受图形的分辨率的影响,画出来的图形可以直接保存为 .png 或者.jpg的图形,适合于画光栅图像或者不规则图形 劣势:没有dom操作,必须依赖定时器,⽂字渲染性能差,不能添加描述(title属性什么的),兼容性限制
iconfont是⼀种web字体来代替图⽚的解决⽅案
场景:代替页⾯上⾊彩单⼀的图⽚
优势:兼容性好,应⽤⼴,⽬前使⽤也很⼴泛
光棍乐劣势:但是由于字体的颜⾊设置单⼀,只能⽤于代替颜⾊单⼀的图⽚,对于⾊彩复杂的图⽚,iconfont处理起来⽐较困难
4、响应式图⽚
场景:不同终端对同⼀个图⽚需求不⼀样,可以根据终端加载不同的图⽚来节省没必要的流量 原理:通过picture元素,picturefill或平台判断来为不同终端平台输出不同的图⽚ 优势:减少没必要的图⽚加载,灵活控制,慢速⽤户加载⼩图⽚不⾄于加载失败,移动端没必要加载⼤尺⼨图⽚等,可以通过不同⽅式兼容所有浏览器劣势:⽆法避免图⽚的加载过程,图⽚本⾝没优化
农村社保新政策5、图⽚压缩
场景:在不得不加载图⽚的前提下,要进⼀步提升优化效果,只能通过有损或⽆损压缩来减少图⽚的⼤⼩。
原理:对图⽚进⾏⽆损、有损压缩,转为压缩后图⽚来实现 优势:减少图⽚加载流量,效果⽐较明显 劣势:服务器和浏览器压⼒增⼤,⽽且服务器需要额外的服务⽀持
6、更好的图⽚格式
李小萌身高
场景:之前说到webp、bpg、sharpP等新图⽚格式具有更好的压缩⽐,可以使⽤这类新型的图⽚来代替原始图⽚ 原理:对图⽚格式转换,在画质可以接受的情况下达到更好的压缩⽐效果优势:减少图⽚加载流量,效果⽐较明显 劣势:服务器和浏览器压⼒增⼤,⽽且服务器需要额外的服务⽀持,格式转
昆马篇
换要考虑浏览器的兼容性