我想,作為前端對於這個算是很熟悉了吧?是不是切圖的時候經常要【存為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 的兼容性不好。