跟进我之前的问题:是否以及如何获取基于 RGB 的TIFF文件并将它们转换为具有标准 .NET (3.5) 功能的 CMYK?
这有可能吗?
实际上有一种使用 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();
请参阅Calle Mellergardh 的回答“将图像从 RGB 转换为 CMYK ”。
不,我认为使用标准 GDI+ 包装器 (System.Drawing) 是不可能的。GDI+ 仅支持 RGB。GDI+ 可以读取基于 CMYK 的图像(隐式转换为 RGB),但不能写入基于 CMYK 的图像。
您可能想尝试类似GraphicsMill的东西,它支持 CMYK。