WebP,是一种同时提供了有损压缩与无损压缩的图片文件格式,派生自视频编码格式 VP8。WebP 最初在2010年发布,目标是减少文件大小,但达到 和 JEPG 格式相同的图片质量,希望能够减少图片档在网络上的发送时间。2011年11月8日,Google 开始让 WebP 支持无损压缩和透明色的功能。
根据 Google 较早的测试,WebP 的无损压缩比网络上找到的PNG档少了45%的文件大小,即使这些 PNG 档在使用 PNGCRUSH 和 PNGOUT 处理过,WebP 还是可以减少28%的文件大小。就目前而言,Webp 可以让图片大小平均减少70%。WebP 是未来图片格式的发展趋势。
WebP 的应用场景及优势:
客户端软件,内嵌了基于 Chromium 的 webview,这类浏览器中应用的网页是可以完全使用WebP 格式,提升加载渲染速度,不考虑兼容。
用 node-webkit 开发的程序,用 WebP 可以减少文件包的体积。
移动应用 或 网页游戏 ,界面需要大量图片,可以嵌入 WebP 的解码包,能够节省用户流量,提升访问速度优势:
对于 PNG 图片,WebP 比 PNG 小了45%。
PNG
png有PNG8、PNG24、PNG32三种格式。PNG8表示图片的每个像素点是8位。PNG24表示图片的每个像素点是24位。PNG32表示图片的每个像素点是32位。所以,PNG32比PNG8能表示的颜色数量更多。
png支持透明通道。
PNG8有1位的布尔透明通道(要么完全透明,要么完全不透明)。PNG24用的就是Alpha透明通道,就是有8位(256阶)的布尔透明通道(所谓半透明),它有1600万种颜色。
png是无损压缩。Android之所以用png格式图片,就是为了不同手机的适配,如果用jpg的话,对于高分辨率手机,可能图片会虚。
虽然png是无损压缩。但是也有一些网站可以对png图片进行有损压缩,比如tinypng网站。正如tinypng官网上介绍的:
When you upload a PNG (Portable Network Graphics) file, similar colors in your image are combined. This technique is called “quantization”. By reducing the number of colors, 24-bit PNG files can be converted to much smaller 8-bit indexed color images. All unnecessary metadata is stripped too. The result: better PNG files with 100% support for transparency.
它的原理是把相似像素的24bit位用8bit位来表示,并且移除了不必要的元数据,是有损压缩,不过肉眼很难看出来。
png不支持动态图。
JPG
jpg又叫jpeg,两者是完全相同的压缩算法。之所以有两个名字,是因为很久之前的Windows系统仅支持扩展名为三位的文件,所以将jpeg格式简写成jpg来供Windows系统识别。当然,现在的Windows系统已经可以支持扩展名为多位数的文件了,但是由于历史原因导致的jpg就延续到至今了。
jpg是24位的。
jpg不支持透明通道。
jpg是有损压缩。每次保存都会有数据损失, 所以尽量不要多次保存。不然图像会失真。
jpg不支持动态图。
WebP
WebP是Google发明的一种图片格式。在达到图片同样效果的情况下,WebP格式的图片体积更小。
WebP刚出现时是不支持透明通道的,后来Google让WebP支持了透明通道。
WebP有无损压缩和有损压缩两种,压缩比例大。
WebP支持动态图。
GIF
gif是8位的。
gif支持透明度。
gif是有损压缩,反复保存gif,图片质量会逐渐变低。
gif可以保存多个图层,所以支持动态图。