iT邦幫忙

2

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

c#
  • 分享至 

  • xImage
  •  

此文同步載於 http://www.dotblogs.com.tw/holmes2136/Default.aspx
某些時候會收到網站的活動圖片在 IE 某些版本 (IE8以下) 下會無法顯示的狀況 ,

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

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

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

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

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

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

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

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

http://blog.miniasp.com/post/2008/07/13/JPEG-Image-cannot-be-displayed-in-Internet-Explorer.aspx

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

http://www.cmykconverter.com/

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

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

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

    {

        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();
    }

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

我要留言

立即登入留言