【问题标题】:GIF ONLY visible in IE BUT not in Firefox, Photoshop or any other appGIF 仅在 IE 中可见,但在 Firefox、Photoshop 或任何其他应用程序中不可见
【发布时间】:2015-08-22 02:39:55
【问题描述】:

请使用 Firefox 或任何其他浏览器和 Internet Explorer 访问以下页面: http://uni-ka.the-jens.de/html/mathe4/mase2.htm

您会看到图片(公式)仅在 IE 中可见。这是怎么做到的? 此外,您会发现它与 html 源无关,仅与图片有关:

  • 下载这些图片并尝试查看它们。一些应用显示一张白色图片,一些显示一张黑色图片,还有一些显示透明图案的图片。

  • 假设您从上面的给定页面 (ma63x.gif) 下载了第一张图片,请复制并使用十六进制或文本编辑器打开它并添加其中一些符号 ÿþýû÷ïß¿ 从第 8 行第 374 行或位置 1218(十进制)。保存后,某些应用程序会立即告诉您 gif 文件的格式无效。

  • 假设您将操作后的副本存储为my.g,然后将它们保存为 htm/html 文件并在 Firefox 中打开它,然后在 IE 中再次打开。

    img src="ma63x.gif"

    img src="my.g"

Firefox 仍然不会显示图片(我使用 3.6 版本,也许 4.0 可以渲染 gif)。 IE 现在将向您显示原件和您的副本。比较两者并尝试在副本中添加和删除标志。

现在我的问题:

  • 是否有任何应用程序使用此“功能”,因为我什至在 Photoshop 中都看不到有用的东西(索引颜色模式下只有一个黑色图层)?
  • 为什么只有IE才能正确显示图片?
  • 您知道如何全面地手动操作上述 gif 吗?

【问题讨论】:

  • 您使用什么程序创建此图像?我以前在某些程序中看到过这种行为。
  • 这些图片不是我创作的。谷歌和 pde 解决把我带到了那个页面但是。我以为作者用它来保护他/她的照片或类似的东西。
  • 页面已关闭,这个问题现在毫无价值。

标签: internet-explorer firefox gif invisible


【解决方案1】:

我检查了页面上的第一张图片,发现我的理论是正确的。我找到了这些设置:

Viewport width = 363
Viewport height = 28

Image position = 190, 448
Image width = 363
Image height = 28

Comment: Image generated by AFPL Ghostscript (device=pnmraw)

因此,图像被放置在视口之外。

Chrome 会扩展视口以包含图像,而 IE 和 Opera 会忽略视口并仅显示图像(或忽略图像的位置)。 Firefox 执行格式指定的操作,即仅显示视口和在其中可见的图像部分。

根据评论,图像是使用 AFPL Ghostscript 创建的,它是一个 Postscript 解释器,因此它可能是从 Postscript 转换为 GIF。

我编辑了文件以将图像位置更改为 0,0,然后它就可以正常工作了:

【讨论】:

  • 哇。感谢 Guffa 和 Pekka 提供快速可靠的答案。我认为这与 IE 以及作为安全“功能”有关。您是如何发现创建应用的?
  • @DragJo:该文件包含一个注释部分,其中包含我在上面显示的文本。我使用 Visual Studio 将文件视为二进制文件,并使用 Wikipedia 上的文件格式示例对其进行了检查。
  • 好吧,你不能不 +1 一个人去手动读取标题中的 实际字节。 :)
  • 绝对酷...对于所有与自己争吵的人(像我一样)Windows 存储在小端,所以如果你尝试找到 363dec=0x16B,它会在二进制视图中显示 6B01。非常感谢 Guffa 和 Pekka。
【解决方案2】:

你的 GIF 有问题。

这就是图像在没有尺寸限制的情况下在 Chrome 中的样子(大量空间是图像的一部分)

所以图像数据始终存在,但 Chrome 读取的图像很大(标签中的大小限制迫使它调整整个图像的大小),而 IE 读取的图像很小。

我认为生成 GIF 文件的应用程序必须在标头数据中存储奇数值。

修复它们的方法是打开IrfanView 中的图像,然后将它们再次保存为 GIF 文件。

【讨论】:

  • 感谢您对 IrfanView 的提示。
  • GIF 格式的视口和视口中显示的图像具有不同的大小。图像可能完全放置在视口之外,并且似乎某些浏览器会调整视口以包含图像,而其他一些浏览器则忽略视口并仅显示图像。在这种情况下,根据文件格式规范,Firefox 所做的实际上是最正确的,即显示视口并且仅显示位于视口内的图像部分。
  • @Guffa ah-ha,这很有意义!在那种情况下,IE确实是搞砸了。 Chrome 和 FF 正在显示整个视口,但 widthheight 约束迫使它变得非常小以至于内容变得不可见
  • @Pekka,当我手动下载文件时,它的大小仅为 363*28,就像源代码中的宽度和高度标签一样,但您的图片是 553*476,因此它是一个完全不同的文件。你是如何设法以这种方式下载的?
  • @DragJo 这取决于您打开哪个程序。 IrfanView 将其读取为 363*28,其他(如 PhotoImpact)占据整个视口
猜你喜欢
  • 2011-08-17
  • 1970-01-01
  • 1970-01-01
  • 2016-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多