【问题标题】:Detect if image color space is CMYK or PMS检测图像色彩空间是 CMYK 还是 PMS
【发布时间】:2011-05-01 12:35:17
【问题描述】:

我正在为这家印刷公司创建一个小型图像上传验证器,他们需要确保上传的图像具有 CMYK 或 PMS 的色彩空间。

这是我现在正在使用的:

Image img = Image.FromStream(fupFile.PostedFile.InputStream);
ImageFlags flags = (ImageFlags)Enum.Parse(typeof(ImageFlags), img.Flags.ToString());

然后我可以检查 flags,其中将包含类似“Partially Scalable | ColorSpaceCmyk | HasRealPixelSize”的内容。这里有更多信息:http://msdn.microsoft.com/en-us/library/system.drawing.imaging.imageflags.aspx

请注意,PMS 颜色空间没有标志。有没有办法检查?

另外,我上传的一些文件根本没有色彩空间标志。这是否意味着无法识别色彩空间?

我也想知道这是检查色彩空间的万无一失的方法,还是有更好的策略?

编辑:

我一直在环顾四周,我猜你可以从图像的元数据中获取大量数据。 http://msdn.microsoft.com/en-us/library/xddt0dz7%28v=VS.90%29.aspx

有谁知道元数据是否包含图像的色彩空间?

【问题讨论】:

    标签: c# asp.net image colors


    【解决方案1】:

    PMS不是一个色彩空间,而是一个色彩匹配系统(PANTONE Color Matching System)。我严重怀疑你会发现任何流行的位图图像文件编解码器采用这种编码像素颜色的方法。相反,它们会将 PANTONE 颜色编码为 CMYK 或 RGB 之一(或者可能是另一种颜色模型)。

    Postscript 或 PDF 等矢量文件格式可能会嵌入包含 PMS 参考的专色,但是,即使这些格式通常也需要与 PMS 编号等效的 RGB 或 CMYK。

    确定图像颜色模型的最佳方法是了解和理解文件格式本身。读取和解析原始文件头以确定底层数据是否存储为 CMYK、RGB 等并不难...

    Leadtools 等强大的工具包可能会使这项任务比您从 .NET 收集的任何东西都更容易和更准确。

    【讨论】:

    • 感谢 PMS 的信息,我不知道。至于读取和解析原始头文件,你能告诉我如何做到这一点,或者引导我找到可以帮助我的博客文章吗?此外,所有图像类型(.jpg、.gif、.png)的颜色空间是否一致,或者每种图像类型是否具有不同的颜色空间?
    猜你喜欢
    • 2014-07-18
    • 2013-12-02
    • 2016-01-25
    • 2020-05-04
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多