2009-11-14 47 views
3

我在網頁中將漸變圖像作爲PNG(不透明)顯示。通過截取顯示頁面的Chrome並從頁面裁剪圖像,我看到與圖像包含的內容完全相同的顏色被繪製出來...將截圖旁邊的圖像放在Paint中,它們是相同的。在IE8中以錯誤的顏色呈現的圖像

但是,當我對IE8中呈現的頁面執行相同操作時,顏色是不同的。我認爲最初IE8必須裁剪邊緣並對其進行拉伸,但情況並非如此...... IE8渲染不在原始圖像中的顏色,就像圖像上方有一個濾鏡。

任何人有任何想法爲什麼,以及我如何解決這個問題?關鍵是我有一個充滿純色的背景,並且漸變圖像的設計與此完美融合......圖像的一側與頁面背景具有相同的RGB值。很顯然,如果圖像不能正確繪製,你會看到令人討厭的邊緣效果。

+0

你能搭起一個鏈接嗎? – 2009-11-14 17:40:40

回答

4

只是稍有不同吧?但足以看出差異?

這是因爲PNG文件通常存儲gamma correction信息,這應該是一個好主意,但實際上不是:The Sad Story of PNG Gamma 「Correction」

解決這個問題的最好方法是從PNG中刪除伽瑪信息,事實上所有其他與色彩空間有關的信息。這全部存儲在gAMA,sRGB,cHRMiCCP塊中。

有幾個實用程序可以做到這一點,例如PngcrushPngout。這些工具還有很多,其中一些具有比其他更多的功能,另外一些功能比其他功能更友好,但您現在應該能夠自己找到這些工具。

The PNG Gamma Dilemma總結第一篇文章,並給出了Pngcrush的一些使用信息。

+1

您還需要刪除'sRGB'塊如果存在。 – bobince 2009-11-14 17:55:10

+0

的確,謝謝。我也加了所有其他的塊。 – mercator 2009-11-14 18:07:59

+0

迷人。我想我會通過保存爲.bmp來進行測試。事實上,圖像只有1個像素高,所以如果這樣的話,文件大小無論如何都可以忽略不計。 將回報。 – 2009-11-18 08:36:32