我想,作为前端对于这个算是很熟悉了吧?是不是切图的时候经常要【存为Web所用格式】这个导出透明图片吧?
我们都知道要这么做,这个习以为常的东西,你知道他们的区别吗?我们常用 PNG8/PNG24 或许我们可以说个大概,但 PNG32 是什么鬼?嗯,是不是感觉问这个很无聊吧?但是,我们平时不注意的东西,往往就出现在面试题当中,相信大家一看到这些题目第一感觉就是 W!T!F! 这是博雅互动的一道面试题,一间上市公司吧,我两年前的真实经历,当时没答上来。
于是乎面试后马上百度了一下,我做了摘录:
PNG 是一种常见的图像文件存储格式。以该格式存储的图片不仅能像 GIF 那样将一组图片制作成动画(APNG),还可以存储透明关系 Alpha。 但 PNG中有分为 PNG8 PNG24 和 PNG32, 搞清楚它们之间的关系十分必要。
一、PNG8 (索引色透明)
PNG8 只能使用 256色,可以设置透明关系。但有两种方式分别为:
+ 索引色透明
+ Alpha透明
索引色透明只可以简单的指定一个像素点是不是透明(是或者不是)。而 Alpha 透明则可指定该像素点的透明的程度(透明度),如30%的透明度。
二、PNG24
特别需要注意的是 PNG24 是不支持透明度设定的,但其可用颜色比 PNG8 丰富的多。
注:有些朋友会发现 Photoshop 里导出的 PNG24 支持透明。其实 PS 导出的是 PNG32
三、PNG32
PNG32 不仅可以使用更多的颜色,而且还支持透明度设定。属于 PNG 系列中较常用的一种格式。
注:IE6 对 PNG32 的兼容性不好。