恭喜RNG獲得MSI冠軍??潜支,我們是冠軍~~~
webp介紹
當今互聯網甸赃,無論網頁還是APP,流量占用最大的冗酿,多數都是因為圖片埠对,越是良好的用戶體驗,對圖片的依賴度越高裁替。但是圖片是一把雙刃劍项玛,帶來了用戶體驗,吸引了用戶注意弱判,卻影響了性能襟沮,因為網絡請求時間會相對比較長。
圖片分很多種昌腰,比較主流的就是:位圖(BMP)开伏,jpg(JPEG,有損壓縮格式)遭商,png(無損壓縮格式)等固灵,這三種,按照圖片大小和清晰度來看劫流,依次是:BMP > png > jpg巫玻。因為jpg是有損壓縮格式,所以jpg圖片相對最小祠汇。iOS普遍選擇的是png來作為最優(yōu)先選擇的圖片(蘋果官方也是這樣建議的)仍秤。
不過,有一種圖片格式可很,在大小上比png小诗力,圖片質量上跟png差不多,就是WebP我抠。
簡單描述一下苇本,WebP是google創(chuàng)造出的一種圖片格式导坟,圖片的壓縮和解碼都由google提供的API完成(各種語言都有,不過目前好像沒看到js可以解碼WebP的)圈澈,在無損壓縮的情況下惫周,比png要小28%左右。
現在已經被各大瀏覽器廠商兼容(如:Chrome康栈,Firefox等)递递,不過蘋果的Safri還沒有兼容這種格式,所以如果UIWebView里面含有WebP的圖片的話啥么,就會顯示不出來(但是我們可以通過NSUrlProtocol來做處理)登舞。如果要在APP中使用得話,我們需要引入SDWebImage這個第三方庫悬荣。
開工
查資料菠秒,SDWebImage中可以處理webp圖片,在工程中pod 'SDWebImage'氯迂,但是不知道什么原因践叠,里面并沒有UIImage+WebP.h,所以下面的三方庫都是下載下來手動導入的嚼蚀。禁灼。。
在github下載SDWebImage
在github下載YYWebImage
在github下載FLAnimatedImage
-
將YYWebImage中的WebP.framework導入工程轿曙,將
FLAnimatedImage中的FLAnimatedImage弄捕、FLAnimatedImageView添加到SDWebImage下的FLAnimatedImage文件夾下,最后將SDWebImage導入工程中导帝。
-
在target->Build Settings中搜索Preprocessor Macros守谓,添加"SD_WEBP=1"
在需要加載圖片的地方添加SDWebImage的方法就可以了
[_iconImgView sd_setImageWithURL:[NSURL URLWithString:dataModel.icon] placeholderImage:nil];
最后
最近閑來無事,抓了JD的接口您单,仿寫一下界面斋荞,webp就是接口返回的圖片。