“image/x-citrix-pjpeg”和“image/pjpeg”的区别是什么?

12

一些文件上载时报告了MIME类型:

image/x-citrix-pjpeg

它们是有效的jpeg文件,我接受它们。

不过,我想知道:为什么MIME类型不同?
格式有什么区别吗?还是这个MIME类型是由Citrix的某个聪明人无缘无故发明的?

6个回答

13
更新:
好的,我在这个问题上进行了更多的搜索和测试,结果他们都在谎称MIME类型(永远不要相信客户端发送的任何信息,我知道)。
我已经检查了许多使用不同编码(使用libjpeg创建)的文件。

JPEG文件的官方MIME类型:image/jpeg

但是一些应用程序(尤其是MS Internet Explorers,还有Yahoo! 邮件)会将JPEG文件发送为image/pjpeg

我以为我知道pjpeg代表“逐行扫描”JPEG。事实证明,渐进/标准编码与此无关。

MS Internet Explorer将所有 JPEG文件作为pjpeg发送,而不管文件内容如何。

对于Citrix也是如此:所有从Citrix客户端发送的JPEG文件都报告为image/x-citrix-pjpeg MIME类型。

文件本身没有被更改(上传前后相同)。因此,MIME类型的差异只是发送文件使用的软件的指示吗?

如果文件内容没有区别,为什么人们要发明一个新的MIME类型呢?


5
image/x-citrix-pjpeg 似乎是从 Citrix 会话中导出的图像所发送的 MIME 类型。我没有发现它们与普通 JPEG 之间有任何格式差异 - 大多数图像转换工具将在添加适当的 mime-type 规则后与常规 pjpeg 处理它们相同。
在 Citrix 会话中,可能会在处理 JPEG 时进行一些内部操作,这导致他们创建了这种 mime-type,并在从其系统导出文件时保留在文件上,但这只是我的猜测。正如我所说,我没有注意到我们收到的偶尔使用此格式的文件有任何实际格式差异。

可能是因为某些未公开的原因,他们更改了MIME类型以在内部进行标记。 - Jacco
这是我的想法,也许他们内部有一种特殊的图像处理程序,可以将图像标记为可用格式。而文件的导出可能只是没有删除该标记。关于此方面的文档并不多! - ConroyP
我的猜测是,在任何终端服务会话中,根据您的设置,您可能会失去一些颜色(例如将深度从24位降低到16位)。因此,Citrix、MS等公司可能已经保留了一种告知另一个端口的可能性,即您正在使用TS会话客户端进行工作-您可以选择以不同的方式生成图像,使其更安全,有更高的机会保留颜色。但这只是我的猜测-请不要太认真对待。 - DmitryK

2
这与 Citrix 的一个名为 SpeedBrowse 的功能有关,它拦截 [Citrix] 服务器端网页中的 jpeg 和 gif 图像,以便通过 ICA(Citrix 远程协议)完整地发送它们 - 这比屏幕截取更有效率。正如之前的一位评论者所建议的那样,这是通过更改图像的 mime 类型来实现的。

如果我没记错的话,它在 IE 中挂钩 FindMimeFromData 来动态更改 mime 类型,但这也被应用于上传的文件和下载的文件 - 这肯定是一个错误。


2

由于某些原因,当人们通过Citrix运行Internet Explorer时,它会更改GIF和JPG文件的MIME类型。

JPG: image/x-citrix-pjpeg
GIF: image/x-citrix-gif

根据我的测试,PNG文件不受影响。我不知道这是Internet Explorer问题还是Citrix问题。


2

并没有真正回答问题,只是提供了一个解决方法。 - Jacco
截至2019年09月27日,此链接已不存在。 - PatS

1

据我记得,渐进式JPEG格式允许随着文件下载的进行,以逐步更高的分辨率显示图像。我并不完全了解细节,但如果你还记得拨号上网的时代,一些文件会在下载过程中显示模糊,然后变得更好,最终完成。为了使这个功能生效,数据需要按照不同于通常JPEG发送顺序来发送。

实际数据,一旦您查看它,是相同的,只是按照不同的顺序发送。JPEG编码本身可能会以不同方式组合像素,我忘了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接