如何使用Magick.Net将RGB位图数据保存为CMYK tiff

How to use Magick.Net to save RGB bitmap data as CMYK tiff

我正在尝试使用 Magick.Net 将 RGB 的 GDI+ 位图转换为 CMYK tiff。 我可以将 GDI+ 位图转换为各种 RGB 图像格式和颜色配置文件,但是当我尝试创建 CMYK 输出时,在 photoshop 中打开生成的 tiff,它仍然是 RGB,并且它说没有附加颜色配置文件。

我用来创建 MagickImage 的代码是

var bitmapData = image.LockBits(new Rectangle(Point.Empty, image.Size), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
var bytes = new byte[image.Width * image.Height * 4];
Marshal.Copy(bitmapData, bytes, 0, bytes.Length);
var magick = new MagickImage(bytes, new PixelReadSettings(width, height, StorageType.Char, "BGRA"));

然后我用

进行转换
magick.AddProfile(ColorProfile.SRGB);
magick.AddProfile(ColorProfile.USWebCoatedSWOP);
magick.ColorSpace = ColorSpace.CMYK;
magick.Settings.ColorSpace = ColorSpace.CMYK;

并使用

保存图像
magick.Format = MagickFormat.Tiff;
magick.Settings.Compression = CompressionMethod.LZW;
magick.Write(stream);

我需要做什么才能使输出的 tiff 成为 CMYK?

我发现了我的问题所在。通过将 magick.ColorType 属性 设置为 TrueColor,我们解决了之前将 sRGB 配置文件应用于灰度图像的问题。看来您不能为 CMYK 图像设置此设置,因为删除它解决了问题。