我有一个问题,我需要检测WebImage是否处于CMYK模式。通过将WebImage传递给函数或字节数组。
目前,我有:
public static bool IsCMYK(Image img)
{
bool isCMYK;
if ((GetImageFlags(img).IndexOf("Ycck") > -1) || (GetImageFlags(img).IndexOf("Cmyk") > -1))
isCMYK = true;
else
isCMYK = false;
return isCMYK;
}
public static string GetImageFlags(Image img)
{
var flagVals = (ImageFlags)Enum.Parse(typeof(ImageFlags), img.Flags.ToString());
return flagVals.ToString();
}
http://www.maxostudio.com/Tut_CS_CMYK.cfm中的修改代码
不知道是否是最佳做法。
如何修改此代码以从WebImage或字节数组检测CMYK?
最佳答案
我通过使用以下代码解决了它:
public static bool IsCMYK(Image image)
{
var flags = (ImageFlags)image.Flags;
if (flags.HasFlag(ImageFlags.ColorSpaceCmyk) || flags.HasFlag(ImageFlags.ColorSpaceYcck))
{
return true;
}
const int PixelFormat32bppCMYK = (15 | (32 << 8));
return (int)image.PixelFormat == PixelFormat32bppCMYK;
}