1. GIF(Graphics Interchange Format)
GIF是一种正在逐渐被抛弃的图片格式。PNG格式的出现就是为了替代它。PNG8除了不支持动画外,PNG8有GIF所有的特点,但是比GIF更加具有优势的是它支持alpha透明和更优的压缩(GIF仅支持索引透明)。
但是gif在网上还是有一席之地的,比如在贴吧或者qq群里常看到的动画图片,用的都是gif。
当图片颜色简单到一定程度,大小小到一定程度的时候,gif格式图片大小要小于png8。比如一个1*1像素的纯黑色点,在PNG8下是124byte,在GIF下是43byte。但是此时的话用css或者base64是一种更好的选择。
2. JPG(Joint Photographic Experts Group)
支持摄影图像或写实图像的高级压缩,并且可利用压缩比例控制图像文件大小。
有损压缩会使图像数据质量下降,并且在编辑和重新保存JPG格式图像时,这种下降损失会累积。
JPG和PNG8都适合颜色较少的图片,因为JPG在栅格化时精确记录少数点,其它点用差值补齐。但是当图像颜色数少于一定值比如256的时候,PNG8可能更合适。
JPG不适合具有大块颜色相近的区域或亮度("锐度")差异十分明显的较简单的图片。
JPG在存储摄影或写实图像一般能达到最佳的压缩效果,比如网站的背景图,轮播图,用户头像等等。
3. PNG(Graphics Interchange Format)
PNG可以细分为三种格式:PNG8,PNG24,PNG32。
后面的数字代表这种PNG格式最多可以索引和存储的颜色值。”8″代表2的8次方也就是256色,而24则代表2的24次方大概有1600多万色。
能在保证最不失真的情况下尽可能压缩图像文件的大小。
PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可存储多到16位的α通道数据。
对于需要高保真的较复杂的图像,PNG虽然能无损压缩,但图片文件较大,不适合应用在Web页面上。
关于透明:
PNG8支持索引透明和alpha透明;
PNG24不支持透明;
而PNG32在24位的PNG基础上增加了8位(256阶)的alpha通道透明,也就是说可以存储从完全透明到完全不透明一共256个层级的透明度(即所谓的半透明)。
4. BMP(Windows Bitmap)
BMP格式使用的是索引色彩,它的图像具有极其丰富的色彩,可以使用16M色彩渲染图像。此格式一般用在多媒体演示和视频输出等情况下。
5. TIFF(Tag Inage File Format)
TIFF 格式是对色彩通道图像来说最有用的格式,支持24 个通道,能存储多于4 个通道。TIFF 格式的结果要比其它格式更大、更复杂,它非常适合于印刷和输出。
6. TGA(Targa)
TGA 格式与TIFF 格式相同,都可以用来处理高质量的色彩通道图形。
7. 其它
PDD、PSD 格式也是存储包括通道的RGB 图像的最常见的文件格式。
使用规范:
一. 少用图片元素,尽量用css3代替。
比如圆角,提示框,不会二次渲染的元素的阴影。
关于css3的filter属性,在移动端并不推荐使用,虽然会节省图片的空间,但是 1、渲染会消耗性能,导致页面加载反而变慢;2、andorid系统在4.0以上版本才支持。
二. 尽量少用png32格式,太大了。
在某些情况下,如果损失一定的视觉可以获得性能较大的提升,可以和设计师协商去掉一些效果。
三. JPG适合摄影图像或写实图像,同时也适合颜色较少图像。
PNG8 适合所含颜色很少(少于256)、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片;
PNG32适合图片较为复杂且有透明效果且透明效果无法用css来实现的情况。
四. 如果页面中有较多的小icon,首先考虑使用webfont。
如果webfont不能满足需求,必须使用css sprite将图片合并,来压缩总体图片的大小,同时减少页面请求提高访问速度。