Как использовать Magick. Net для сохранения растровых данных RGB в формате CMYK - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь использовать Magick. Net для преобразования битовой карты GDI +, которая является RGB, в формат CMYK. Я могу преобразовать растровое изображение GDI + в различные форматы изображения и цветовые профили RGB, но когда я пытаюсь создать вывод CMYK, открывая результирующий 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?

1 Ответ

0 голосов
/ 07 апреля 2020

Я узнал, в чём была моя проблема. Мы решили предыдущую проблему, применив профиль sRGB к изображениям с серой шкалой, установив для свойства magick.ColorType значение TrueColor. Похоже, вы не можете иметь этот набор для изображений CMYK, так как его устранение решило проблему.

...