當(dāng)今互聯(lián)網(wǎng),無(wú)論網(wǎng)頁(yè)還是APP,流量占用最大的,多數(shù)都是因?yàn)閳D片,越是良好的用戶體驗(yàn),對(duì)圖片的依賴度越高。但是圖片是一把雙刃劍,帶來了用戶體驗(yàn),吸引了用戶注意,卻影響了性能,因?yàn)榫W(wǎng)絡(luò)請(qǐng)求時(shí)間會(huì)相對(duì)比較長(zhǎng)。
圖片分很多種,比較主流的就是:位圖(BMP),jpg(JPEG,有損壓縮格式),png(無(wú)損壓縮格式)等,這三種,按照?qǐng)D片大小和清晰度來看,依次是:BMP > png > jpg。因?yàn)閖pg是有損壓縮格式,所以jpg圖片相對(duì)最小。iOS普遍選擇的是png來作為最優(yōu)先選擇的圖片(蘋果官方也是這樣建議的)。
不過,有一種圖片格式,在大小上比png小,圖片質(zhì)量上跟png差不多,就是WebP。
什么是WebP?
簡(jiǎn)單描述一下,WebP是google創(chuàng)造出的一種圖片格式,圖片的壓縮和解碼都由google提供的API完成(各種語(yǔ)言都有,不過目前好像沒看到j(luò)s可以解碼WebP的),在無(wú)損壓縮的情況下,比png要小28%左右。
現(xiàn)在已經(jīng)被各大瀏覽器廠商兼容(如:Chrome,F(xiàn)irefox等),不過蘋果的Safri還沒有兼容這種格式,所以如果UIWebView里面含有WebP的圖片的話,就會(huì)顯示不出來(但是我們可以通過NSUrlProtocol來做處理)。如果要在APP中使用得話,我們需要引入SDWebImage這個(gè)第三方庫(kù)。
SDWebImage使用WebP
這個(gè)第三方庫(kù)封裝得很好,使用起來與我們以前用他來加載網(wǎng)絡(luò)圖片方式一樣,如下:
[imageView sd_setImageWithURL:[NSURL URLWithString:圖片路徑] placeholderImage:[UIImage imageNamed:@"默認(rèn)圖片"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *ima