在C#中识别jpeg的颜色配置文件

时间:2013-09-11 21:04:48

标签: c# .net

我使用了一个lib,它通过o2Solutions处理名为PDF4Net的PDF文件。我在XP和Server 2003上遇到问题,其中lib无法正确识别图像的色彩空间,并错误地在页面上绘制它们,使图像偏斜。您可以指定要显式绘制的图像的颜色空间,并且我正在尝试以编程方式确定图像所处的颜色空间。我偶然发现:

How to detect if a jpeg contains cmyk color profile?

我使用了这个功能:

protected bool isFileACMYKJpeg(System.Drawing.Image someImage)
{
    System.Drawing.Imaging.ImageFlags flagValues = (System.Drawing.Imaging.ImageFlags)Enum.Parse(typeof(System.Drawing.Imaging.ImageFlags), someImage.Flags.ToString());
    if (flagValues.ToString().ToLower().IndexOf("ycck") == -1)
    {
        return false;
    }
    return true;
}

然而,即使jpeg处于CMYK状态,它也仅返回RGB。有关如何解决这个问题的想法吗?

1 个答案:

答案 0 :(得分:3)

你尝试过这样的事吗?

protected bool isFileACMYKJpeg(System.Drawing.Image someImage)
{
  return someImage.Flags.HasFlag(System.Drawing.Image.ImageFlags.ColorSpaceCmyk);
}