如何检测jpeg是否包含cmyk颜色配置文件?

8 c# jpeg

我有一些代码可以扩展用户上传的图像.它在大多数情况下都能很好地工作,但有时它们会上传包含cmyk信息的jpeg.

谷歌搜索后,似乎jmygs与cmyk值无效,但由于它们在Windows中工作,用户认为它是我的应用程序的问题,所以我需要能够处理这些情况.问题:

如何检测jpeg是否包含cmyk信息?(它允许我告知用户它为什么不起作用).

如何将其转换为普通的jpeg?

Ism*_*ael 3

Jpeg 是一种支持比特流内任意数量的编码平面(它们彼此独立压缩)的标准,因此具有 cmyk 配置文件的 jpeg 是完全有效的。大多数 jpeg 文件使用 jfif 容器 ( http://en.wikipedia.org/wiki/JFIF )进行编码,该容器最初仅支持灰度图像、YCbCr 或 sRGB,但它是可扩展的,并且 Adob​​e 有一个自定义标记来支持 cmyk 配置文件。

查看此链接以获取解决方法 http://www.jroller.com/greenhorn/entry/adobe_photoshop_and_jpeg_cmyk,它是用java编写的,但您可以轻松地将其移植到c#。

  • 我不明白这与问题有什么关系,但这似乎是 IE 的问题/限制。 (2认同)
  • 我仍然不明白这与这里的问题有什么关系,问题是“如何检测 CMYK jpeg 文件”。jpeg 标准旨在涵盖广泛的静态图片、16 位、多平面、无损编码等。最常见的容器是 jfif,最常见的选项是以 YCbCr 格式存储,这是大多数程序支持的格式。支持其他颜色空间是一项理想的功能,但我认为这不是网络浏览器开发人员最关心的问题。 (2认同)