【问题标题】:Image rendered with wrong colors in IE8在 IE8 中以错误颜色呈现的图像
【发布时间】:2009-11-15 02:05:45
【问题描述】:

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

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

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

【问题讨论】:

    标签: html internet-explorer


    【解决方案1】:

    只是略有不同,对吧?但足以看出区别了吗?

    这是因为 PNG 文件通常存储 gamma correction 信息,这本应是个好主意,但实际上并非如此:The Sad Story of PNG Gamma “Correction”

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

    有几个实用程序可以做到这一点,例如PngcrushPngout。这些工具有很多,有些比其他的功能更多,有些比其他的更易于使用,但您现在应该可以自己找到这些工具了。

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

    【讨论】:

    • 如果存在sRGB 块,您还需要删除。
    • 令人着迷。我想我会通过重新保存为 .bmp 来进行测试。事实上,图像只有 1 个像素高,所以如果可行,文件大小无论如何都可以忽略不计。会回来报告的。
    • 你最好把它做成GIF,而不是BMP。 BMP 在 Internet 上被禁止使用。
    猜你喜欢
    • 2012-07-03
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 2020-10-02
    • 2011-05-26
    • 1970-01-01
    相关资源
    最近更新 更多