Firefox 3.5 对 PNG 图像颜色处理的问题

5

Comments

今天做投票系统的界面的时候又遇到了那个问题:用图片表示的部分和纯色部分衔接有问题。我开始还以为是我当时编写的时候就有问题,由于显示器的缘故儿没有发现。今天想解决一下这个问题,找找原因。

我先打开了 GIMP,把用的背景图片打开,取了颜色,发现颜色就是其他部分的颜色。我就奇怪了,从数值上说应该是一样的才对。然后我就取了 Firefox 里面的色,发现 Firefox 里面图片对应位置的颜色被修改了?!

下面是一个关于这一 bug 的演示:

如果你看了觉得看到的是一个完全的纯色的区域,那么说明你没有遇到这一问题。但如果你看到不是一个纯色区域,那么就说明你也遇到了同样的问题……找了一圈,没有发现相关的中文资料,觉得非常无语,难道都没人发现这么严重的问题么……

在英文资料中我倒是找到了些头绪。首先,Mozilla 表示这是一个 Feature 而非一个 Bug!他们声称这是在 Firefox 3.0 中引入了默认的颜色管理 (Color Management) 和颜色矫正 (Color Correction),但默认被禁用,而在 Firefox 3.5 中由于效率的改进将其默认设置改为对于部分图片打开了。根据 Mozilla 官方的资料来看,这无疑是一个很好的进步,因为它使得 Firefox 显示的色彩可以和这一图片反映的真实色彩一致,使得这一图片无论在任何平台或者任何显示、输出设备上得到的颜色都是一样的。可是可是,问题是,如果 Firefox 和 GIMP 上显示的效果不一样,而 Firefox 又是正确的,那么 GIMP 作为可以在大部分场合取代 Photoshop 的图片处理软件的颜面何存呢?所以显然错的是 Firefox……

在官方文档的最后,我们终于找到了,Mozilla 承认这是一个 bug,并且辩称仅仅是因为只支持到了 ICC 第二版,而没有支持到第四版导致的“图片可能偏暗” (This may result in images being too dark.)……Firefox 啊 Firefox,真不是我说你,ICC 第四版早在2001年就发布了,你既然准备支持了还不直接支持到完全,结果搞出这么个莫名其妙的 bug 还好意思说是 Feature……

说的差不多了……最后是解决的办法:对于用户来说,如果遇到这种情况,可以直接在 Firefox 的设置里面调整使之不自作聪明的进行错误的颜色矫正。只要打开 about:config,然后找到 gfx.color_management.mode 一项,将其值修改为 0 并重新启动 Firefox 即可。至于网站制作者,可以通过去除所有可能激活 Firefox 颜色矫正机制的信息来解决,对于 png 图片来说,就是安装 pngcrush 软件,然后对图片运行下面命令:

1
pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB 输入文件.png 输出文件.png

这件事呢,不禁让我想起了当年 IE 浏览器(8以下)对于 gamma 值的误读,也是自作聪明地来矫正颜色。这次 Firefox 的做法和当年的 IE 几乎如出一辙,实在是不能不让人感到失望啊。

参考资料:

最后,来看看你的浏览器和系统是否支持 ICC 标准了?里面还有一个 PDF 文件用于测试你的 PDF 阅读器。根据我的测试,Firefox 3.5(被我调整过设置的)、Chromium 5.0、Opera 10.0 无一支持 ICC,Firefox 3.5(默认设置)倒是可以正常的显示下半部分(ICC version 2),不过 Ubuntu 默认的 PDF 阅读器 Evince 倒是支持的很正常,看来 GNOME 还是很牛X的~

5 Responses to “Firefox 3.5 对 PNG 图像颜色处理的问题”

  1. Moses Says:
    2010年2月4日 23:56 回复

    这里有個测试, 可以测试各浏览器对 ICC 标准的支持情况, Chrome 或 Safari 都能完美的支持 ICC v4
    http://www.color.org/version4html.xalter

    • upsuper Says:
      2010年2月5日 00:02 回复

      这个测试我在文章最后不是都有写么……
      根据我的测试 Chromium 5.0.xxxx for Linux 的 Daily Build 至少是不支持的……

      • Robot Says:
        2010年2月5日 15:56 回复

        ChromePlus(基于Chromium 4.xxx)也不支持。。。

  2. jiong Says:
    2010年2月26日 18:14 回复

    纯色

  3. lilydjwg Says:
    2010年2月27日 14:30 回复

    纯色 Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.8) Gecko/20100214 Ubuntu/9.10 (karmic) Firefox/3.5.8 – Build ID: 20100106054534

Leave a Reply