Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cross browser JPEG文件解码中的跨浏览器不兼容?_Cross Browser_Jpeg_Decoding - Fatal编程技术网

Cross browser JPEG文件解码中的跨浏览器不兼容?

Cross browser JPEG文件解码中的跨浏览器不兼容?,cross-browser,jpeg,decoding,Cross Browser,Jpeg,Decoding,有些事情让我困惑——为什么每个浏览器中的显示都不一样 IE9(和Windows照片查看器)中的图像: Firefox(和Photoshop)中的图像: Chrome(和Irfanview)中的图像: 他们对JPEG的解码过程中发生了什么,使得最终的输出如此不同 (在IE、Firefox、Chrome等中查看,了解我的意思。)JPEG可以用RGB或CMYK编码。这些异常通常发生在CMYK时。在图像编辑程序中打开文件并将其另存为RGB JPEG,向CMYK打印机致敬,它现在将具有与您以前在浏览

有些事情让我困惑——为什么每个浏览器中的显示都不一样

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

Firefox(和Photoshop)中的图像:

Chrome(和Irfanview)中的图像:

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


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

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

我只是猜测。

如果图像是为了显示这些差异而创建的,那么它可能不是经过编码的普通图像,而是一个无效图像,其中计算的颜色超出了0到255的范围,并且不同的解码器处理这些颜色的方式不同。

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

(source now available@sourceforge)报告说,在我们实现Y'CbCr到RGB的转换之前,luma溢出过大。我在其他一些文件上遇到这些错误,但溢出通常很小-256或257,而最大值为255。这里计算的luma是729

JPEGSnoop作者对YCC溢出的评论:

YCC直流限幅-每个MCU添加或 从DC(平均)值中减去 在上一个MCU中。这些都应该 保持在8位范围内,但是 DC系数中的损坏可能会导致 使该值偏离设定值 范围这种类型的错误将导致 颜色或颜色的突然大范围变化 图像中的亮度。像这样 错误的数量通常不会恢复, JPEGsnoop将只报告第一个 日志文件中有10个

我不熟悉国际米兰,但佩内贝克和米切尔


有趣的是,我不知道这会有什么不同。然而,Photoshop报告说这张图片是RGB颜色空间而不是CMYK。当我第一次下载你的图片()时,我发誓它是我Photoshop中的CMYK:-)。如果您保存它,然后用浏览器测试它,它将再次显示正常。PS:我的答案似乎与我之前5分钟的“困惑”相似。这似乎是有道理的,因为它似乎显示了非常有限的颜色范围,并区分了8x8块中的各个像素。至少根据Photoshop,这一块似乎被编码为RGB。无论如何,将其复制粘贴到新图像并保存。这可能解决了你的问题。如果没有,尝试另一个图形程序。没关系,这不是问题,更多的只是好奇:)谢谢你的回答!它现在在Chrome中看起来不同了;)
*** 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...