重新认识前端开发使用的『图片』

图片在前端开发中非常常用,但是图片的文件格式却是有很多种,平常我们使用的时候可能不会太在意这方面。实际上不同的图片格式有不同的应用的场景,从体验和性能优化的角度考虑也是值得我们学习。下面将简单介绍图片的常见类型。

图片类型介绍

1.PNG

PNG格式有8位、24位、32位三种形式,其中8位PNG支持两种不同的透明形式(索引透明和alpha透明),24位PNG不支持透明,32位PNG在24位基础上增加了8位透明通道,因此可展现256级透明程度。

PNG图片支持无损压缩。

2.JPG(JPEG)

JPG和JPEG其实是一个格式,而且可细分为Baseling-JPG和Progress-JPG两种。两种不同类型的图片各有适用场景,通常来说使用Progress—JPG给用户的体验更好。

JPG支持有损压缩。

  1. Baseling-JPG
  2. Progressive-JPG

3.GIF

GIF经常用于动画的图片上,支持无损压缩,支持背景透明。

4.SVG

SVG(可缩放矢量图形)这种图片的类型我们可能用得比较少,实际上这种格式的图片优势非常多。

  1. 基于可扩展标记语言
  2. 采用文本来描述对象
  3. 具有交互性和动态性
  4. 完全支持DOM

SVG支持无损压缩和背景透明,而且还支持动画。

但是,SVG相比JPG和PNG来说优势这么大为何并没有很广泛的被应用呢?这和SVG的一部分优势相关,因为SVG太过灵活,实际开发中维护SVG图片成本非常高。

5.WebP

WebP是谷歌开发出来的一种图片格式,所以并不是一个通常的标准格式(仅Chrome和Opera支持)。但是WebP因为其自家谷歌浏览器的份额高占有率,同时WebP相比其他常用的图片格式具有更大的优势,实际开发应用还是比较常见。

WebP同时支持无损和有损压缩,支持背景透明。

6.APNG

APNG其实是在PNG的基础上扩展了支持动画的图片文件格式,这也不是一个通用的标准格式(仅Safari和Firefox支持)。

APNG支持无损压缩,背景透明,且额外支持动画。

7.BPG

BPG是一种实验性的图片文件格式,在浏览器使用需要提供js解码,该图片格式并未成为通用标准。但是因为其相比其他图片格式,具有更高压缩比,且支持背景透明和动画,同时支持无损压缩和有损压缩,实际上有希望成为新的主流图片格式。

有损压缩和无损压缩

前面介绍图片的时候提到的无损压缩和有损压缩是什么呢?实际上这个概念适用很多地方(视频,音频等),简单说说这两个的概念。

1.有损压缩

有损压缩是利用了人类对图像或声波中的某些频率成分不敏感的特性,允许压缩过程中损失一定的信息;虽然不能完全恢复原始数据,但是所损失的部分对理解原始图像的影响缩小,却换来了大得多的压缩比。

2.无损压缩

无损压缩格式,是利用数据的统计冗余进行压缩,可完全恢复原始数据而不引起任何失真。

图片里有损压缩牺牲了部分图片细节,以此换来更大的压缩比。

小结

图片格式支持透明支持动画压缩方式浏览器支持适用场景
PNG支持不支持无损压缩所有需要透明时
JPG不支持不支持有损压缩所有通用场景
GIF支持支持无损压缩所有简单颜色、动画
SVG支持支持无损压缩所有需要良好缩放体验,动态控制图片特效
WebP支持不支持有损压缩和无损压缩Chrome、Opera复杂颜色、平台可知
APNG支持支持无损压缩Firefox、Safari半透明动画
BPG支持支持有损压缩和无损压缩无,需要JS解码极致性能优化

在开发中虽然经常用到了图片,但是对不同的图片格式并没有太多认知,希望通过重新学习图片的知识,增强自己的业务能力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值