解码JPEG文件时跨浏览器不兼容?

时间:2010-10-14 21:50:24

标签: cross-browser jpeg decoding

令我感到困惑的是 - 为什么this image在每个浏览器中都显示不同?

IE9(和Windows照片查看器)中的图像:
Image in IE9

Firefox(和Photoshop)中的图像:
Image in Firefox

Chrome中的图片(和Irfanview):
Image in Chrome

JPEG的解码过程中发生了什么,使最终输出变得如此不同?

(在IE,Firefox,Chrome等中查看,看看我的意思。)

4 个答案:

答案 0 :(得分:6)

JPEGSnoop(源现在可用@ sourceforge)在我们进行Y'CbCr到RGB转换之前报告大亮度溢出。我在其他一些文件上得到这些错误,但溢出通常很小 - 256或257,最大值为255.这里计算的亮度为729!

JPEGSnoop的作者对YCC溢出的评论:

  

DC中的YCC削波 - 每个MCU添加或   从DC(平均值)中减去   在之前的MCU中。这些应该都是   保持在8位范围内,但是   DC系数的腐败可能   导致这个值徘徊   范围。这种类型的错误会导致   突然大规模的颜色变化或   图像中的亮度。作为这种类型   错误一般不会恢复,   JPEGsnoop只会报告第一个   其中10个在日志文件中。

我不熟悉MCU间的DC,但是Pennebaker& amp;米切尔concur

*** Decoding SCAN Data ***
  OFFSET: 0x00000160
  Scan Decode Mode: Full IDCT (AC + DC)

  Scan Data encountered marker   0xFFD9 @ 0x00027CA9.0

*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  729,  109,  171) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  682,  109,  172) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  741,  109,  173) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  629,  109,  174) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  841,  109,  175) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  319,  109,  176) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  928,  109,  177) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   0,   0) YCC=(  624,  109,  177) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   1,   0) YCC=(  785,  107,  171) Y Overflow @ Offset 0x00027CA8.2
*** NOTE: YCC Clipped. MCU=(   1,   0) YCC=(  559,  107,  171) Y Overflow @ Offset 0x00027CA8.2
    Only reported first 10 instances of this message...

答案 1 :(得分:2)

JPEG可以用RGB或CMYK编码。这些特点通常发生在它的CMYK时。在图像编辑程序中打开文件并将其保存为RGB JPEG,并向CMYK打印机致敬,这些打印机现在将具有您之前在浏览器中获得的不同结果。

答案 2 :(得分:1)

我只是在猜测 如果图像是为了显示这些差异而创建的,那么它可能不是正常的编码图像,而是一个无效的图像,其中计算的颜色在0到255范围之外,不同的解码器处理这些不同。

答案 3 :(得分:1)

例如,如果在Photoshop中将特定图像的颜色配置文件从CMYK更改为sRGB,则在所有浏览器中它或多或少都会显得相同。

相关问题