Файл .NET TIFF: возможно ли преобразование RGB в CMYK без сторонней библиотеки? - PullRequest
2 голосов
/ 08 марта 2009

В ответ на мой предыдущий вопрос: можно ли взять файлы TIFF на основе RGB и преобразовать их в CMYK со стандартной функциональностью .NET (3.5)?

Возможно ли это вообще?

Ответы [ 2 ]

9 голосов
/ 09 марта 2009

На самом деле есть способ использовать пространство имен System.Windows.Media.Imaging. который на данный момент работает только с TIFF (что мне подходит):

    Stream imageStream = new
        FileStream(@"C:\temp\mike4.jpg", FileMode.Open, FileAccess.Read, FileShare.Read);
    BitmapSource myBitmapSource = BitmapFrame.Create(imageStream);
    FormatConvertedBitmap newFormatedBitmapSource = new FormatConvertedBitmap();
    newFormatedBitmapSource.BeginInit();
    newFormatedBitmapSource.Source = myBitmapSource;
    newFormatedBitmapSource.DestinationFormat = PixelFormats.Cmyk32;
    newFormatedBitmapSource.EndInit();

    BitmapEncoder encoder = new TiffBitmapEncoder();
    encoder.Frames.Add(BitmapFrame.Create(newFormatedBitmapSource));

    Stream cmykStream = new FileStream(@"C:\temp\mike4_CMYK.tif",

    FileMode.Create, FileAccess.Write, FileShare.Write);
    encoder.Save(cmykStream);
    cmykStream.Close();

См. « Преобразование изображений из RGB в CMYK », ответ Калле Меллергарда.

1 голос
/ 08 марта 2009

Нет, я не думаю, что это возможно при использовании стандартных оболочек GDI + (System.Drawing). GDI + поддерживает только RGB. Изображения на основе CMYK могут считываться с помощью GDI + (неявное преобразование в RGB), но изображения на основе CMYK не могут быть записаны.

Возможно, вы захотите попробовать что-то вроде GraphicsMill , которое поддерживает CMYK.

...