關于SDWebImage加載webp格式圖片異常問題

很久之前寫的了,最近都統一發了。參考資料,解決問題,總結一下,作為學習

問題

webp 格式圖片加載失敗

方案

方案1

后端調整?。。。。

方案2

設置庫加載圖片的請求頭

1:進入SDWebImageDownloader.m 可以看到庫提供了請求頭設置

sd_webp.png

所以,相應的配置一下即可

sd_webp_setting.png

2:另外一種方式是通過代碼靜態的設置庫的請求頭

didFinishLaunchingWithOptions中:

    [SDWebImageDownloader.sharedDownloader setValue:@"text/html,application/xhtml+xml,application/xml,image/webp,image/*,*/*;q=0.8"
                                 forHTTPHeaderField:@"Accept"];

關于這種方式設置請求頭,解釋一下:

  • Accept表示瀏覽器支持的 MIME 類型
  • value值即表示客戶端請求服務端生成相應內容的類型
    • text/html,application/xhtml+xml,application/xml 都是 MIME 類型,也可以稱為媒體類型和內容類型,斜杠前面的是 type(類型),斜杠后面的是 subtype(子類型);type 指定大的范圍,subtype 是 type 中范圍更明確的類型,即大類中的小類
    • Text:用于標準化地表示的文本信息,文本消息可以是多種字符集和或者多種格式的;
    • text/html表示 html 文檔;
    • Application:用于傳輸應用程序數據或者二進制數據;
    • application/xhtml+xml表示 xhtml 文檔;
    • application/xml表示 xml 文檔
  • q是權重系數,范圍 0 =< q <= 1,q 值越大,請求越傾向于獲得其“;”之前的類型表示的內容,若沒有指定 q 值,則默認為1,若被賦值為0,則用于提醒服務器哪些是瀏覽器不接受的內容類型
  • mimetype以逗號分割,越靠前,優先級越高

所以如上設置,圖片格式設置了image/webp,表示服務端webp格式的圖片不用強轉了 ?

是不是設置請求頭,服務端知道內容生成格式了?生成image/webp格式?

方案3

SDWebImage支持webp的,可以集成該庫:pod 'SDWebImage/WebP',但是問題在于ios11.2之后webp格式的data無法解析為image呀,所以,就需要解決webp的data到image的解析問題

集成 webp

pod依賴庫,個人習慣性的search一下,了解最新版本,homepage,source等信息。

pod search SDWebImage/WebP,發現沒有搜索到,SDWebImage下沒有webp的subspecs,但是pod install時候會發現,installing libwebp。所以,pod search libwebp 能搜索到,也能看到相關homepage,source等,發現libwebp是谷歌上的資源。所以,可能無法訪問,會依賴失敗

方法1:直接訪問源地址

試一下,就算翻墻,可能也會訪問錯誤的:
fatal: unable to access 'chromium.googlesource.com/webm/libweb…': Failed to connect to chromium.googlesource.com port 443: Operation timed out

所以,需要配置host,host列表,將host列表中的配置全部copy到host文件中,有點多,我也驚到了

方法2:更換pod資源地址

打開webp庫的libwebp.podsepc.json文件

libwebp1.0.2.png
webpsource.png

看到source是https://chromium.googlesource.com/webm/libwebp,不通過一些手段是訪問不到的

將source改為https://github.com/webmproject/libwebp.git再pod install即可。(能看到,libwebp.git是mirrored from 哪個的,就是上面那個)

注意:修改的是libwebp的source,所以,需要pod 'libwebp'來依賴,如果修改的是搜索出來的最高版本的source,默認安裝的就是這個,如果修改的是較低版本的source,那么依賴時候,最好指定版本

webp.data > image

SDWebImage其實是支持webp格式的圖片的,所以,11.2系統之前,集成過libwebp后,就可以直接正常加載webp格式的圖片了。11.2之后的,webp圖片的data無法解析得到image。

這一點,YYWebImage,YYImage支持WebP、APNG、GIF格式動畫圖像的播放/編碼/解碼

所以,可以將跟SDWebImage跟YYWebImage和YYImage結合一下

+ (UIImage *)imageWithWebPData:(NSData *)imgData error:(NSError **)error
{
    UIImage *webpImage = [YYImage imageWithData:imgData];
    return webpImage;
}

方法是重寫SDWebImage的方法,,方法體處理是YYImage的解析處理

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,563評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,694評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,672評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,965評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,690評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,019評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,013評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,188評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,718評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,438評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,667評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,149評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,845評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,252評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,590評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,384評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380