2

跟进我之前的问题:是否以及如何获取基于 RGB 的TIFF文件并将它们转换为具有标准 .NET (3.5) 功能的 CMYK?

这有可能吗?

4

2 回答 2

10

实际上有一种使用 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 ”。

于 2009-03-09T08:55:03.263 回答
1

不,我认为使用标准 GDI+ 包装器 (System.Drawing) 是不可能的。GDI+ 仅支持 RGB。GDI+ 可以读取基于 CMYK 的图像(隐式转换为 RGB),但不能写入基于 CMYK 的图像。

您可能想尝试类似GraphicsMill的东西,它支持 CMYK。

于 2009-03-08T14:24:13.980 回答