ie8瀏覽器 圖片本身問題導致 無法顯示圖片--- 詭異現象的排查分享


引子:
 
 
 前段時間 做新版2.0 首頁 的時候, 總感覺 新版首頁 線上 精彩回顧下的 2張圖片顏色怪怪的,當時以為是圖片壓縮太厲害導致的,由於實在太忙就沒太在意!以下 是來自線上 截圖:
 
 紅色方框 我認為  那2張 怪怪的 圖片,大家感受下顏色是否不一樣!
 
 
 
問題描述:
 
       今天,測試同學找到我,說新版首頁 精彩回顧下方 2張圖片 在 ie8下 圖片展現不出來了!
 
 
 
開始排查:
 
 通過 瀏覽器 查看圖片 DOM結構, 代碼如下:
 
 <img data-original="http://file.xxxx.com/view/banner/09e7286d39013387ff07e0efe7dc8c6ab3a51aef.jpg"  src="http://g.tbcdn.cn/s.gif" alt="" width="174" height="113” >
 
 
起初, 第一反應是圖片地址問題,結合查看到的圖片DOM結構,懷疑是 image  layzload 懶加載 機制導致,故而 嘗試把 圖片真實地址 直接寫在 圖片 img src 地址上 解決!
 
    ps:圖片懶加載機制原理:
 
        通俗的講就是js檢測 用戶鼠標滾動到 可視區域后,將預先埋在 img元素上 data-original 真實圖片地址 替換到 圖片 src上,從而達到圖片懶加載的目的,實現性能優化!
 
 
結果 還是不行! 
 
呃~
 
 
 
進一步分析:
 
 快速列舉下相關要素

  • 非 ie瀏覽器 正常顯示圖片;
  • 小於等於 原生ie 8 以下無法正常展現; 
  • 非圖片 懶加載檢測機制問題;
  • 直接在瀏覽器中訪問 圖片地址 非 ie瀏覽器都正常顯示, 原生ie8 及其以下不能正常顯示(出現圖片加載失敗叉叉圖標 )

 

 
初步分析結論:
 
     基於上述情況, 由此 分析出是2個可能性:

  • 圖片地址問題(如:合法性、安全性等) 
  • 圖片本身問題


 
繼續排查:
 
最初懷疑是 file路徑關鍵字 影響(純屬自己假設歪歪),因為在window系統下,//file 是本地圖片 window系統特有的路徑地址,但 :

  1. ie8以上ok;
  2. 瀏覽器未發出警告和錯誤通知!說明url路徑 安全、合法~
  3. 其他 同域名:http://file.xxxxx.com/ 下的圖片展現正常!


 
故而 圖片url地址 首先被 排除掉!
 
 


進一步排查:
 
將 無法正常 顯示的圖片 下載下來,二話不說,先查看圖片信息:

  • 查看文件信息,如圖:


 
 
 
 
看到沒,CMYK!
 
猛然一驚,一眼 就瞅到 CMYK,頓時發現了 根本問題所在!於是也明白了 之前總覺得圖片顏色怪怪的根本原因了!
 
 
 
先 特寫感受下 RGB 和 CMYK 圖片差異:
     
     以下2張相同圖片,使用 不同顏色模式 視覺差異( 紅色方框 的是 用於工業印刷用的),大家感受下:
 
 

 
CMYK顏色模式 簡單解釋:
 
     CMYK 顏色模式 主要用於  工業排版印刷使用,也被印刷業 稱之為4色加色增強模式(青、品紅、黃、黑值), 並不是 適用於 基於“光”色的3原色(紅 綠 藍) 256階色的 屏幕 圖片展示
 
  學過平面視覺設計或動畫相關、美術專業 同學都知道,這里我就不多嘰歪了! 
 
 
知道了圖片主流這2種(總共3種) 顏色模式的差異,但和瀏覽器有什么關系呢?不急,往下看!
 
 
 
CMYK 各大 瀏覽器 支持情況:

 
Browser support for CMYK encoded images

Browser RGB CMYK
IE6, 7, 8 Yes No
IE9 Yes Yes
Firefox 2.x Yes No
Firefox 3.x - Yes Yes
Safari 4- Yes Yes
Google Chrome 5 - Yes Yes 

 
 
 
 
解決之道:
 
修復這個問題  (Fixing this issue)
 
Image editors such as Adobe Photoshop,  The Gimp, and others is capable of identifying if a jpg image is a CMYK image and saving a CMYK jpg as a RGB jpg. 
 
 
最佳方式,使用 Adobe Photoshop 圖片編輯器或其他能夠轉換的圖片編輯器,將圖片 顏色模式 從CMYK  保存為 RGB 顏色模式即可!比如我的:

 
 
 
 
至此,保存重新上傳后,ie8等顯示正常!10分鍾,問題解決!!!
 
 
 
 
刨根問底: 
 
 
     可能你會問? 既然 你說圖片色彩模式有問題,那為什么 非ie 瀏覽器 都可以呢? 
 
 其實你讓我回答,我只能說 人家 瀏覽器渲染引擎 比你ie的 trident引擎 先進,兼容、渲染機制處理的好! 從支持瀏覽器支持列表中也可以看到, Firefox 2.x 想當初也是不行滴!
 
 
 對於這個問題, 微軟在新一代瀏覽器 里已經修復,故而從 ie9開始,可以正常展現!事實上從上面的支持 表中 或者 實際操作效果 來看,也是如此!
 
 
 
 
后記:
 
 
     這是一個隱藏很深,不容易被發現的 細節 所帶來的圖片展現問題, 我這里也只是有針對性的、簡單的 剖析下原因! 拋磚引玉,供大家參考! 
 
 希望 運營同學、PD同學等其他 上傳圖片 的使用者們,注意下這個問題,謝謝!
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM