時間:2024-03-07 22:32作者:下載吧人氣:14
網頁圖片為了達到更快的加載速度,就必須要進行圖片壓縮,那么怎么壓縮圖片是最好的呢?我們來一起研究一下。
最近在做webapp,發現產品圖的大小無論怎么壓縮都還是有20-30KB,這樣的大小在搜索列表頁可不是個小數目。經我們的后臺提醒,說京東上有一張產品圖 220*220px-96dpi-6.62KB~~為了一探究竟,我做了如下實驗!
在前端網頁中,關于產品圖和banner圖的壓縮,有一個總體的結論:
1.實物圖傾向用jpg/jpeg格式;
2.具備較大亮度差異及強烈對比的圖像傾向于png格式。
注:本文章最后詳細說面了上面的結論。
但是這篇文章也提出一個觀點:“jpg格式中,謹慎使用50%品質以下的壓縮率”
乍一看50%以下的壓縮率好像是雷區(我一直被這句話忽悠了)....
所以我一直用一個在線壓縮圖片的網址來壓縮圖片:https://tinypng.com
在要求不高的情況下,是非常好用的。根據圖片內容、大小的不同,壓縮率在60%-90%不等。
隨便找幾張圖,100-200KB的圖,壓縮到20-30KB已經上天了,真心好奇220*220-96dpi-6.6KB是怎么做到的!
-----------------------------------------------------分割線------------------------------------------------------
于是今天做了個實驗,將原圖為800*800px-96dpi-75KB的圖壓縮到220*220px-96dpi-6.6KB,
這里需要注意,必須是使用PS的這個功能(截圖版本:PS CS6 13.0):
而在PS CC16.0版本中這個選項沒有了!
----------------------------------------------------- 開整 ------------------------------------------------------
先附上原圖屬性的截圖,這3張圖都是從京東上直接down下來的。
1.把800*800尺寸的圖改成220*220,這個大家都會,此處略。
2.通過ps“存儲為web所用格式..”其實只要把存儲品質選到40左右(我為了測試,發現39這個值生成的文件大小最接近原圖)這時候再點擊上圖下面的“存儲”按鈕。就大功告成了
此例中,220*220-96dpi的圖能壓縮到6KB,并且在手機端幾乎看不出來100品質和40品質的區別,換句話說,僅僅犧牲了一點肉眼很難分辨的清晰度,換來了更小的圖片大小。
這篇文章純屬用來告誡自己不要想當然,網上一些所謂的“結論”,并不一定使用所有情況。
----------------------------------------------------- 補充知識------------------------------------------------------
《京東后臺圖片優化技巧》作者:PointNet
文檔主要包括以下幾方面內容:
1、基本概念
位圖又叫像素圖或柵格圖,它是通過記錄圖像中每一個點的顏色、深度、透明度等信息來存儲和顯示圖像。一張位圖就好比一幅大的拼圖,只不過每個拼塊都是一個純色的像素點,當我們把這些不同顏色的像素點按照一定規律排列在一起的時候,就形成了我們所看到的圖像。所以當我們放大一幅像素圖時,能看到這些拼片一 樣的像素點(如下圖)。在web頁面中所使用的JPG、PNG、GIF格式的圖像都是位圖。
優點:利于顯示色彩層次豐富的寫實圖像。
缺點:文件大小較大,放大和縮小圖像會失真。
JPG和PNG的一些特性對比:
格式
壓縮模式
交錯支持
透明支持
動畫支持
JPG
有損壓縮
支持
不支持
不支持
PNG
無損壓縮
支持
支持
不支持
JPG的特性
1、支持攝影圖像或寫實圖像的高級壓縮,并且可利用壓縮比例控制圖像文件大小。
2、有損壓縮會使圖像數據質量下降,并且在編輯和重新保存JPG格式圖像時,這種下降損失會累積。
3、JPG不適用于所含顏色很少、具有大塊顏色相近的區域或亮度差異十分明顯的較簡單的圖片。
PNG的特性
1、能在保證最不失真的情況下盡可能壓縮圖像文件的大小。
2、PNG用來存儲灰度圖像時,灰度圖像的深度可多到16位,存儲彩色圖像時,彩色圖像的深度可多到48位,并且還可存儲多到16位的α通道數據。
3、對于需要高保真的較復雜的圖像,PNG雖然能無損壓縮,但圖片文件較大,不適合應用在Web頁面上。
PNG8與PNG24
提到PNG格式可分為PNG8和PNG24,兩者后面的數字則是代表這種PNG格式最多可以索引和存儲的顏色值。”8″代表2的8次方也就是256色,而24則代表2的24次方大概有1600多萬色。
PNG8還支持1位的布爾透明通道,所謂布爾透明指的是要么完全透明要么完全不透明。而PNG24則支持8位(256階)的alpha通道透明,也就是說可以存儲從完全透明到完全不透明一共256個層級的透明度(即所謂的半透明)。
格式
最高支持色彩通道
索引色編輯支持
透明支持
PNG8
256色
支持
支持布爾透明
PNG24
約1600萬色
不支持
支持8位(256階)alpha透明
由于GIF現在使用率偏低,常適用于GIF動畫,由于PNG本身是開發者為了代替GIF而衍生出的圖片格式,所以透明圖片建議采用PNG8。
GIF文件的數據,是一種基于LZW算法的連續色調的無損壓縮格式。其壓縮率一般在50%左右,它不屬于任何應用程序。 GIF格式的另一個特點是其在一個GIF文件中可以存多幅彩色圖像,如果把存于一個文件中的多幅圖像數據逐幅讀出并顯示到屏幕上,就可構成一種最簡單的動畫。
案例1:
下圖為京東商城header部分用JPG和PNG8格式分別進行保存,可以看到保存的結果有兩個值得注意的地方:
1、JPG保存的文件大小比是PNG保存的文件大
2、JPG文件出現了噪點
造成結果的原因分析:
1、 首先我們發現文字顏色和描邊等都是采用純色, 圖像所包含的色彩信息非常有限。當用PNG存儲這個圖像時,只需要保存很少的色彩信息就可以真實還原這個圖 像。而對于JPG格式來說大小主要決定于圖像的顏色層次,所以在這種顏色較少但對比強烈的情況下,反而不能很好的壓縮文件大小。
案例2:
下圖用PNG8和JPG進行了保存,發現當用PNG8保存時不僅保證了圖像的質量且圖像文件的大小僅有8.3K,而當用JPG 100%保存時文件大小則增加到44.2K,如果不經放大可能還看不出具體的差異,但實際和前面一樣也會出現不必要的噪點。如果我們要達到PNG8的壓縮 率采用JPG 45%進行保存,則圖像會出現較嚴重的失真。
結論具備以下條件的圖像更適合用PNG8格式進行存儲:
1、圖像上顏色較少,并且主要以純色或者平滑的漸變色進行填充。
2、具備較大亮度差異以及強烈對比的簡單圖像(如“立刻購買”按鈕中的背景和文字)。
案例1:
下圖用JPG 60%(左上)、PNG8 256色 無仿色(右上)、PNG8 256色 擴散仿色(左下)、PNG32(右下)分別進行了存儲。可以看出當用JPG存儲圖像時不僅能夠達到最大的壓縮率,也能盡量保證原圖的還原效果。而采用PNG8進行保存時圖像文件大小更大,失真也較嚴重。只有在PNG24的格式下才能保證品質,然而文件大小卻比JPG要大很多。
造成結果的原因分析:
產生這種結果的原因也與JPG和PNG各自的壓縮算法有關。
1、對于攝影或者寫實作品,由于受環境光線的影響,圖像上的色彩層次十分豐富。比如巴士車上的紅色區域由于反光、陰影以及透視效果會形成明暗、深淺各異的區域,如果用PNG去保存,則需要不同明暗度的紅色去存儲這個區域。對于整張圖片來說,PNG8的256色無法完全索引圖像上出現的所有顏色,于是在存儲時就會丟失許多顏色而產生失真。如果要保證圖像的效果,則需要色彩范圍更廣的PNG24進行存儲,相應的文件大小也會增加。
2、JPG的壓縮算法則更利于對真實世界中這些復雜的色彩變化進行壓縮處理,從而在盡量壓縮文件大小的情況下比較好的還原圖像的視覺效果。
案例2
下圖中用不同圖片格式對背景進行保存時可以發現:當用JPG進行保存時(直接背景另存為)文件大小僅36.3K;用PNG8 256色無仿色去保存時大小增加到57.7K,不僅如此由于顏色的缺失在圖像上還出現了一些帶鋸齒的色塊;為了降低這些色塊對圖像質量的影響我們對PNG8增加了擴散仿色的效果,此時文件大小達到了156.3K;而當采用PNG24完全不失真的保存時文件大小是231.9K。
造成結果的原因分析:
我們可以發現由于在圖像上采用了很多的真實素材(比如白云、螞蟻、綠葉等),而這些真實素材和攝影圖像一樣也會存在非常豐富的色彩層次,所以也不適合用PNG格式進行保存。這個時候我們就應該采用JPG格式。
結論具備以下條件的圖像更適合用JPG格式進行存儲:
對于寫實的攝影圖像或是顏色層次非常豐富的圖像采用JPG的圖片格式保存一般能達到最佳的壓縮效果。
在存儲圖像時采用JPG還是PNG主要依據圖像上的色彩層次和顏色數量進行選擇。一般層次豐富顏色較多的圖像采用JPG存儲,而顏色簡單對比強烈的則需要采用PNG。但也會有一些特殊情況,例如有些圖像盡管色彩層次豐富,但由于圖片尺寸較小,上面包含的顏色數量有限時,也可以嘗試用PNG進 行存儲。而有些矢量工具繪制的圖像由于采用較多的濾鏡特效也會形成豐富的色彩層次,這個時候就需要采用JPG進行存儲了。
另外還有一個原則就是用于頁面結構的基本視覺元素,如容器的背景、按鈕、導航的背景等應該盡量用PNG格式進行存儲,這樣才能更好的保證設計品質。而其他一些內容元素,如廣告Banner、商品圖片等對質量要求不是特別苛刻的,則可以用JPG去進行存儲從而降低文件大小。
3、Photoshop中各種參數的含義及設置技巧
減低顏色深度算法與顏色
指定用于生成顏色查找表的方法,以及想要在顏色查找表中使用的顏色數量。可以選擇以下減低顏色深度算法之一:
PS:一般情況下默認選擇“可選擇”項即可。
仿色方法和仿色
確定應用程序仿色的方法和數量。”仿色”是指模擬計算機的顏色顯示系統中未提供的顏色的方法。
較高的仿色百分比使圖像中出現更多的顏色和更多的細節,但同時也會增大文件大小。為了獲得最佳壓縮比,請使用可提供所需顏色細節的最低百分比的仿色。
若圖像所包含的顏色主要是純色,則在不應用仿色時通常也能正常顯示。包含連續色調(尤其是顏色漸變)的圖像,可能需要仿色以防止出現顏色條帶現象。
可以選擇以下幾種仿色方法之一:
ps:一般只在圖片顏色過多產生失真的情況下才需要選擇仿色。建議選擇擴散仿色,可以適當調節仿色的百分比以達到最佳的效果。仿色度越高文件大小也越大。
透明度和雜邊
確定如何優化圖像中的透明像素。
交錯
PNG、GIF這兩種圖像格式都提供了一種功能,讓圖像能夠更快地顯示。圖像可以以一種特殊方式存儲,顯示時先大概顯示圖像的草圖,當文件全部下載后再填充細節。這起到一種很有意義的心理效果,因為這樣使人們有東西可看,而不必坐著干等大型圖像慢慢顯示在屏幕上。
ps:對于尺寸和文件大小相對較大的圖片建議勾選此項。
品質
從”品質級別”菜單中選取一個選項,或者在”品質”文本框中指定一個值。”品質”設置越高,壓縮算法保留的細節越多。但是,使用高”品質”設置比使用低”品質”設置生成的文件大。查看幾種品質設置下的優化圖像,確定品質和文件大小之間的最佳平衡點。
品質設置技巧
圖例(左為質量50右為質量51)
優化
選擇”優化”創建文件大小稍小的增強型JPEG。建議使用”優化JPEG”格式以獲得最大文件壓縮量;但是,一些較舊的瀏覽器不支持此特性。
ps:建議勾選此項,目前基本已經不存在不支持改功能的瀏覽器。
連續
選擇”連續”創建在Web瀏覽器中連續顯示的圖像。圖像將顯示為一系列的疊加,使查看者在整個圖像下載完畢之前,能夠看到圖像的低分辨率版本。連續JPEG需要更多的內存用于查看,一些瀏覽器不支持該選項。
ps:勾選此項在某些情況下可壓縮文件大小(圖片大小大于10k時),某些情況下會增大文件大小,建議在保存是根據實際情況決定。不過IE6及更早版本的ie瀏覽器不支持JPG連續顯示,而是在圖片完全加載后一次成像,用戶體驗上可能還不如不使用連續的逐步成像要 好,所以建議慎選此項。
模糊
指定應用于圖像的模糊量。”模糊”選項應用與”高斯模糊”濾鏡相同的效果,并允許進一步壓縮文件以獲得更小的文件大小。建議使用 0.1 到 0.5 之間的設置。
ICC 配置文件
選擇”ICC 配置文件”將圖片的 ICC 配置文件與文件保留在一起。ICC 配置文件由某些瀏覽器用于色彩校正。(請參閱Photoshop中設置色彩管理。)
雜邊
指定原稿圖像中透明像素的填充色:點按”雜邊”色板,然后在拾色器中選擇一種顏色。從”雜邊”菜單中選取選項。原稿圖像中完全透明的像素由選中的顏色填充,原稿圖像中部分透明的像素與選中的顏色相混合。
網友評論