Archivo .NET TIFF: ¿Es posible la conversión de RGB a CMYK sin una biblioteca de terceros?
Pregunta
Siguiendo mi pregunta anterior: si y cómo sería posible tomar TIFF archivos y convertirlos a CMYK con funcionalidad estándar .NET (3.5)?
¿Es eso posible?
Solución
En realidad, hay una forma de usar el espacio de nombres System.Windows.Media.Imaging que solo parece funcionar correctamente con los TIFF en este momento (lo cual está bien para mí):
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();
Ver " Convirtiendo imágenes de RGB a CMYK " ;, la respuesta de Calle Mellergardh.
Otros consejos
No, no creo que sea posible usar envoltorios GDI + estándar (System.Drawing). GDI + solo es compatible con RGB. Las imágenes basadas en CMYK se pueden leer con GDI + (conversión implícita a RGB), pero las imágenes basadas en CMYK no se pueden escribir.
Es posible que desee probar algo como GraphicsMill , que admite CMYK.