На самом деле есть способ использовать пространство имен 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 », ответ Калле Меллергарда.