本文介绍和比较几种常见图片文件格式的优缺点,并介绍不一样的文件格式对Web应用程序性能的影响。算法
图片文件格式有可能会对图片的文件大小进行不一样程度的压缩,图片的压缩分为有损压缩和无损压缩两种。浏览器
计算机在表示颜色的时候,有两种形式,一种称做索引颜色(Index Color),一种称做直接颜色(Direct Color)。服务器
BitMap的缩写,是无损的、既支持索引色也支持直接色的、点阵图。编辑器
这是一种比较老的图片格式。BMP是无损的,但同时这种图片格式几乎没有对数据进行压缩,因此BMP格式的图片一般具备较大的文件大小。虽然同时支持索引色和直接色是一个优势,可是太大的文件格式格式致使它几乎没有用武之地,如今除了在Windows操做系统中还比较常见以外,咱们几乎看不到它。函数
从上图中能够看到,在一样的图片质量下,BMP格式的图片文件大小是GIF格式的不少倍。性能
全称Graphics Interchange Format,采用LZW压缩算法进行编码。是无损的、采用索引色的、点阵图。优化
GIF是无损的,采用GIF格式保存图片不会下降图片质量。但得益于数据的压缩,GIF格式的图片,其文件大小要远小于BMP格式的图片。文件小,是GIF格式的优势,同时,GIF格式还具备支持动画以及透明的优势。但,GIF格式仅支持8bit的索引色,即在整个图片中,只能存在256种不一样的颜色。动画
GIF格式适用于对色彩要求不高同时须要文件体积较小的场景,好比企业Logo、线框类的图等。因其体积小的特色,如今GIF被普遍的应用在各种网站中。网站
JPEG是有损的、采用直接色的、点阵图。编码
JPEG图片格式的设计目标,是在不影响人类可分辨的图片质量的前提下,尽量的压缩文件大小。这意味着JPEG去掉了一部分图片的原始信息,也便是进行了有损压缩。JPEG的图片的优势,是采用了直接色,得益于更丰富的色彩,JPEG很是适合用来存储照片,用来表达更生动的图像效果,好比颜色渐变。
与GIF相比,JPEG不适合用来存储企业Logo、线框类的图。由于有损压缩会致使图片模糊,而直接色的选用,又会致使图片文件较GIF更大。
PNG全称Portable Network Graphics,PNG-8是PNG的索引色版本。PNG-8是无损的、使用索引色的、点阵图。
PNG是一种比较新的图片格式,PNG-8是很是好的GIF格式替代者,在可能的状况下,应该尽量的使用PNG-8而不是GIF,由于在相同的图片效果下,PNG-8具备更小的文件体积。除此以外,PNG-8还支持透明度的调节,而GIF并不支持。 如今,除非须要动画的支持,不然咱们没有理由使用GIF而不是PNG-8。固然了,PNG-8自己也是支持动画的,只是浏览器支持得很差,不像GIF那样受到普遍的支持。
能够看到PNG-8具备更好的透明度支持。
PNG-24是PNG的直接色版本。PNG-24是无损的、使用直接色的、点阵图。
无损的、使用直接色的点阵图,听起来很是像BMP,是的,从显示效果上来看,PNG-24跟BMP没有不一样。PNG-24的优势在于,它压缩了图片的数据,使得一样效果的图片,PNG-24格式的文件大小要比BMP小得多。固然,PNG24的图片仍是要比JPEG、GIF、PNG-8大得多。
虽然PNG-24的一个很大的目标,是替换JPEG的使用。但通常而言,PNG-24的文件大小是JPEG的五倍之多,而显示效果则一般只能得到一点点提高。因此,只有在你不在意图片的文件体积,而想要最好的显示效果时,才应该使用PNG-24格式。
另外,PNG-24跟PNG-8同样,是支持图片透明度的。
全称Scalable Vector Graphics,是无损的、矢量图。
SVG跟上面这些图片格式最大的不一样,是SVG是矢量图。这意味着SVG图片由直线和曲线以及绘制它们的方法组成。当你放大一个SVG图片的时候,你看到的仍是线和曲线,而不会出现像素点。这意味着SVG图片在放大时,不会失真,因此它很是适合用来绘制企业Logo、Icon等。
SVG是不少种矢量图中的一种,它的特色是使用XML来描述图片。借助于前几年XML技术的流行,SVG也流行了不少。使用XML的优势是,任什么时候候你均可以把它当作一个文本文件来对待,也就是说,你能够很是方便的修改SVG图片,你所须要的只须要一个文本编辑器。
SVG并不是只能绘制简单的Logo类的图片,它能够绘制出精致的图片的,好比下面这涨,嗯。
WebP是谷歌开发的一种新图片格式,WebP是同时支持有损和无损压缩的、使用直接色的、点阵图。
从名字就能够看出来它是为Web而生的,什么叫为Web而生呢?就是说相同质量的图片,WebP具备更小的文件体积。如今网站上充满了大量的图片,若是可以下降每个图片的文件大小,那么将大大减小浏览器和服务器之间的数据传输量,进而下降访问延迟,提高访问体验。
想象Web上的图片之多,百分之几十的提高,是很是很是大的优化。只惋惜,目前只有Chrome浏览器和Opera浏览器支持WebP格式,因此WebP的应用并不普遍。为了使用更先进的技术,好比WebP图片格式,来压缩互联网上传输的数据流量,谷歌甚至提供了Chrome Data Compression Proxy,设置了Chrome Data Compression Proxy做为Web代理以后,你访问的全部网站中的图片,在通过Proxy的时候,都会被转换成WebP格式,以下降图片文件的大小。
我的总结:
图片的压缩方式有无损压缩和有损压缩两种。前者压缩后比后者要大。图片的颜色表示有直接颜色和索引颜色两种。前者比后者更丰富,体积更大。