html - 在 IE8 中使用错误颜色呈现的图像

标签 html internet-explorer

我在网页中有一个渐变图像作为 PNG(无透明度)。通过截取显示页面的 Chrome 屏幕截图并从页面裁剪图像,我看到绘制的颜色与图像包含的颜色完全相同...将屏幕截图放在 Paint 中的图像旁边,它们是相同的。

但是当我对在 IE8 中呈现的页面执行相同操作时,颜色不同。我最初认为 IE8 必须裁剪边缘并拉伸(stretch)它,但事实并非如此......IE8 正在渲染原始图像中不存在的颜色,就像图像顶部有一个滤镜一样。

任何人都知道为什么,我该如何解决这个问题?关键是我有一个充满纯色的背景,渐变图像被设计成与这个完美融合……图像的一侧与页面背景具有相同的 RGB 值。显然,如果图像绘制不正确,您会看到令人讨厌的边缘效果。

最佳答案

只是略有不同,对吧?但足以看出差异吗?

那是因为 PNG 文件通常存储 gamma correction信息,这应该是个好主意,但实际上不是:The Sad Story of PNG Gamma “Correction” .

修复它的最佳方法是从 PNG 中删除 Gamma 信息,实际上是所有其他与颜色空间相关的信息。这些都存储在 gAMAsRGBcHRMiCCP block 中。

有几个实用程序可以做到这一点,例如 PngcrushPngout .周围有很多这样的工具,有些比其他的功能更多,有些比其他的更用户友好,但您现在应该能够自己找到这些工具。

The PNG Gamma Dilemma对第一篇文章进行了总结,并提供了 Pngcrush 的一些使用信息。

关于html - 在 IE8 中使用错误颜色呈现的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1734889/

相关文章:

javascript - 为什么我的 "click"事件监听器不能为我的删除按钮工作?

javascript - 关闭站点的 IE 8 兼容模式

javascript - JavaScript 和 Html 脚本中的元标记确保 Web 浏览器的兼容性

css - IE float 问题

html - 为什么设置 :first-letter selector with whitespace cause mouse highlighting to be offset?

Android网页开发问题

javascript - 英语到法语,法语到英语翻译网络应用程序

java - html中没有可用的id、xpath、classnmae、teg、link、cssselector、名称用于selenium对象识别java

html - 如何为 IE 设置边框不透明度?

html - 网站上的顶部栏无法在 Chrome 上正确 float