我在网页中有一个渐变图像作为 PNG(无透明度)。通过截取显示页面的 Chrome 屏幕截图并从页面裁剪图像,我看到绘制的颜色与图像包含的颜色完全相同...将屏幕截图放在 Paint 中的图像旁边,它们是相同的。
但是当我对在 IE8 中呈现的页面执行相同操作时,颜色不同。我最初认为 IE8 必须裁剪边缘并拉伸(stretch)它,但事实并非如此......IE8 正在渲染原始图像中不存在的颜色,就像图像顶部有一个滤镜一样。
任何人都知道为什么,我该如何解决这个问题?关键是我有一个充满纯色的背景,渐变图像被设计成与这个完美融合……图像的一侧与页面背景具有相同的 RGB 值。显然,如果图像绘制不正确,您会看到令人讨厌的边缘效果。
最佳答案
只是略有不同,对吧?但足以看出差异吗?
那是因为 PNG 文件通常存储 gamma correction信息,这应该是个好主意,但实际上不是:The Sad Story of PNG Gamma “Correction” .
修复它的最佳方法是从 PNG 中删除 Gamma 信息,实际上是所有其他与颜色空间相关的信息。这些都存储在 gAMA
、sRGB
、cHRM
和 iCCP
block 中。
有几个实用程序可以做到这一点,例如 Pngcrush和 Pngout .周围有很多这样的工具,有些比其他的功能更多,有些比其他的更用户友好,但您现在应该能够自己找到这些工具。
The PNG Gamma Dilemma对第一篇文章进行了总结,并提供了 Pngcrush 的一些使用信息。
关于html - 在 IE8 中使用错误颜色呈现的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1734889/