2009-03-08 20 views

Répondre

7

En fait, il y a une manière en utilisant l'espace de noms System.Windows.Media.Imaging qui semble ne fonctionner correctement avec TIFFs au moment (ce qui est bien pour moi):

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(); 

Voir « Converting images from RGB to CMYK » , la réponse de Calle Mellergardh.

+0

Le lien vers Connect est un 404. – bzlm

1

Non, je ne pense pas que ce soit possible en utilisant les wrappers standard GDI + (System.Drawing). GDI + prend uniquement en charge RVB. Les images basées sur CMJN peuvent être lues par GDI + (conversion implicite en RGB), mais les images basées sur CMJN ne peuvent pas être écrites.

Vous voudrez peut-être essayer quelque chose comme GraphicsMill, qui prend en charge CMJN.