特定 jpg 圖片無法在 IE下看到

摘要:特定 jpg 圖片無法在 IE下看到

某些時候會收到網站的活動圖片在 IE 某些版本 (IE8以下) 下會無法顯示的狀況 , 

 

而 Chrome 或者其他瀏覽器卻能夠順利瀏覽 , 其原因在於這些圖片

 

是使用 CMYK 模式下儲存的 , 而 IE 只能讀取 RGB 模式的圖檔 , 

 

最簡單測試圖片能否顯示的方式是

 

你可以直接把圖片拖拉到 IE 中 , 看會不會出現肉包 , 

 

而最簡單的處理方式是你可以使用小畫家再儲存一次就可以了....

 

但是小弟也有遇過儲存時會出現下列訊息 : 

 

小畫家無法儲存這個檔案 . 存檔時被中斷了 , 所以你的檔案並未儲存

 

也可以參考保哥的解決方式

 

另外有一個線上 CMYK 轉 RGB 的服務 : 網址

 

不過轉下去可能與原本的圖片會有差距 ....

 

可以參考下列的 Code 來去判斷圖片是否是 CMYK  , 

 

其會取得圖片的像素資料的屬性旗標來判斷 , 

 

protected void Page_Load(object sender, EventArgs e)
    {

        System.Drawing.Bitmap img = new System.Drawing.Bitmap(@"C:\test\cymk1.JPG", true);


        if (IsCMYK(img))
        
            Response.Write("yes");
        else 
            Response.Write("No");
       

    }

    public static bool IsCMYK(System.Drawing.Image MyImage)
    {
        bool ReturnVal;
        if ((GetImageFlags(MyImage).IndexOf("Ycck") > -1) || (GetImageFlags(MyImage).IndexOf("Cmyk") > -1))
          ReturnVal = true; 
        else
            ReturnVal = false; 
        
        
        return ReturnVal;
        
    }
     
    public static string GetImageFlags(System.Drawing.Image MyImage)
    {
       
        ImageFlags FlagVals = (ImageFlags)Enum.Parse(typeof(ImageFlags), MyImage.Flags.ToString());
        
        return FlagVals.ToString();
    }