首頁  >  
網(wǎng)站優(yōu)化  >
SEO每日一博  >  
還在為網(wǎng)站圖片優(yōu)化發(fā)愁?十分鐘極限優(yōu)化web前端圖片
還在為網(wǎng)站圖片優(yōu)化發(fā)愁?十分鐘極限優(yōu)化web前端圖片
時間:2016-01-09 10:01:11
隨著web的發(fā)展,網(wǎng)站資源的流量也變得越來越大。據(jù)統(tǒng)計,60%的網(wǎng)站流量均來自網(wǎng)站圖片,可見對圖片合理優(yōu)化可以大幅影響網(wǎng)站流量,減小帶寬消耗和服務(wù)器壓力。
這種類型的JPEG文件存儲方式是按從上到下的掃描方式,把每一行順序的保存在JPEG文件中。打開這個文件顯示它的內(nèi)容時,數(shù)據(jù)將按照存儲時的順序從上到下一行一行的被顯示出來,直到所有的數(shù)據(jù)都被讀完,完成了整張圖片的顯示。如果文件較大或者網(wǎng)絡(luò)速度較慢,那么會看到圖片被一行行加載的效果,這種格式的JPEG沒有什么優(yōu)點,因此,一般都推薦使用Progressive JPEG。
和Baseline一遍掃描不同,Progressive JPEG文件包含多次掃描,這些掃描順尋的存儲在JPEG文件中。打開文件過程中,會先顯示整個圖片的模糊輪廓,隨著掃描次數(shù)的增加,圖片變得越來越清晰。這種格式的主要優(yōu)點是在網(wǎng)絡(luò)較慢的情況下,可以看到圖片的輪廓知道正在加載的圖片大概是什么。
jpeg優(yōu)勢:?非常通用,JPEG在色調(diào)及顏色平滑變化的相片或是寫實繪畫(painting)上可以達(dá)到它的效果。
jpeg劣勢:?它并不適合于線條繪圖(drawing)和其他文字或圖示(iconic)的圖形,因為它的壓縮方法用在這些圖形的型態(tài)上,會得到不適當(dāng)?shù)慕Y(jié)果;
GIF(Graphics?Interchange?Format)的原義是“圖像互換格式”,GIF文件的數(shù)據(jù),是一種基于LZW算法(串表壓縮算法)連續(xù)色調(diào)的無損壓縮格式。是目前web網(wǎng)頁中十分常用的一種動畫文件格式。
的壓縮算法使其在一定程度上保證圖像質(zhì)量的同時將體積變得很小?可插入多幀,從而實現(xiàn)動畫效果
可設(shè)置透明色以產(chǎn)生對象浮現(xiàn)于背景之上的效果
由于采用了8位壓縮,多只能處理256種顏色(2的8次方),故不宜應(yīng)用于真彩圖像。
png文件分為png8(8位透明png)、png24(256色png)、png32(多階透明png),png的有點在于使用位圖實現(xiàn)web上的透明圖片,以實現(xiàn)比較好的體驗。?
支持256色調(diào)色板技術(shù)以產(chǎn)生小體積文件。
支持圖像亮度的gamma校正信息。-?支持存儲附加文本信息,以保留圖像名稱、作者、版權(quán)、創(chuàng)作時間、注釋等信息。
漸近顯示和流式讀寫,適合在網(wǎng)絡(luò)傳輸中快速顯示預(yù)覽效果后再展示全貌。
的PNG標(biāo)準(zhǔn)允許在一個文件內(nèi)存儲多幅圖像。
但也有一些軟件不能使用適合的預(yù)測,生成的文件較大(IE6只支持PNG8)。
場景:適用于圖片大小小于2KB,頁面上引用圖片總數(shù)不多的情況
原理:將圖片轉(zhuǎn)換為base64編碼字符串inline到頁面或css中
優(yōu)勢:減少http的請求次數(shù),并可以放到后臺數(shù)據(jù)庫中,只傳輸字符串,有較多的構(gòu)建工具可以直接實現(xiàn)
劣勢:這種方法于圖片總數(shù)較少,而且圖片大小小于2KB的情況。否則圖片字符串會變得很長很長
原理:將多個頁面上用到的背景圖片合并成一個大的圖片在頁面中引用
優(yōu)勢:可以有效的較少請求個數(shù),而且,而不影響開發(fā)體驗,使用構(gòu)建插件可以做到對開發(fā)者透明。適用于頁面圖片多且豐富的場景。
劣勢:生成的圖片體積較大,減少請求個數(shù)同時也增加了圖片大小,不合理拆分將不利于并行加載
3、使用css、svg、canvas或iconfont代替圖片
場景:適用于移動端或較的瀏覽器,而且繪制的圖案較為簡單。
原理:css方式可以用來繪制相對簡單的團(tuán)來代替圖片,一般使用before或者after偽元素來豐富圖案的復(fù)雜度。
優(yōu)勢:具有實現(xiàn)簡單,圖片體積小的特點,可以實現(xiàn)簡單的動態(tài)效果
劣勢:也受限于css的兼容性特點,繪制復(fù)雜圖案困難。
原理:適用html5的canvas元素繪制創(chuàng)建圖片
優(yōu)勢:整個是畫2D圖形時,頁面渲染性能比較高,頁面渲染性能受圖形復(fù)雜度影響小,性能只受圖形的分辨率的影響,畫出來的圖形可以直接保存為?.png?或者?.jpg的圖形,適合于畫光柵圖像或者不規(guī)則圖形
劣勢:沒有dom操作,必須依賴定時器,文字渲染性能差,不能添加描述(title屬性什么的),兼容性限制
iconfont是一種web字體來代替圖片的解決方案:?場景:代替頁面上色彩單一的圖片?優(yōu)勢:兼容性好,應(yīng)用廣,目前使用也很廣泛?劣勢:但是由于字體的顏色設(shè)置單一,只能用于代替顏色單一的圖片,對于色彩復(fù)雜的圖片,iconfont處理起來比較困難
場景:不同終端對同一個圖片需求不一樣,可以根據(jù)終端加載不同的圖片來節(jié)省沒必要的流量。
原理:通過picture元素,picturefill或平臺判斷來為不同終端平臺輸出不同的圖片。
優(yōu)勢:減少沒必要的圖片加載,靈活控制,慢速用戶加載小圖片不至于加載失敗,移動端沒必要加載大尺寸圖片等,可以通過不同方式兼容所有瀏覽器。
劣勢:無法避免圖片的加載過程,圖片本身沒優(yōu)化。
場景:在不得不加載圖片的前提下,要進(jìn)一步提升優(yōu)化效果,只能通過有損或無損壓縮來減少圖片的大小。
原理:對圖片進(jìn)行無損、有損壓縮,轉(zhuǎn)為壓縮后圖片來實現(xiàn)。
劣勢:服務(wù)器和瀏覽器壓力增大,而且服務(wù)器需要額外的服務(wù)支持。
上面提供了web圖片的一些格式特點和圖片優(yōu)化的可行方案,具體的場景需要考慮選擇不同的方式來進(jìn)行優(yōu)化。當(dāng)然常見的優(yōu)化思路為:頁面靜態(tài)資源圖片使用css,canvas,svg,iconfont,sprite,base64來優(yōu)化,后臺返回的數(shù)據(jù)資源圖片則通過響應(yīng)式、圖片壓縮來優(yōu)化,同時盡可能考慮使用新的更高壓縮比的圖片來做圖片轉(zhuǎn)化,例如webp、bpg。
推薦閱讀