Necesita la función C # para convertir TIFF en escala de grises a blanco y negro (monocromo / 1BPP) TIFF
Necesito una función C # que tome un Byte [] de un TIFF en escala de grises de 8 bits, y devuelva un Byte [] de un TIFF de 1 bit (blanco y negro).
Soy bastante nuevo para trabajar con TIFF, pero la idea general es que necesitamos convertirlos de escala de grises o color a formato de imagen en blanco y negro / monocromo / binario.
Recibimos las imágenes a través de un WCF como un byte [], luego necesitamos hacer esta conversión a blanco y negro para enviarlas a un componente que realice un procesamiento adicional. No planeamos en este punto guardarlos como archivos.
Para referencia, en nuestro cliente de prueba, así es como creamos el Byte []:
FileStream fs = new FileStream("test1.tif", FileMode.Open, FileAccess.Read);
this.image = new byte[fs.Length];
fs.Read(this.image, 0, System.Convert.ToInt32(fs.Length));
fs.Close();
--------actualizar---------
Creo que puede haber más de 1 buena respuesta aquí, pero terminamos usando el código del sitio de CodeProject con el siguiente método agregado para sobrecargar la función de conversión para aceptar Byte [] y mapa de bits:
public static Byte[] ConvertToBitonal(Byte[] original)
{
Bitmap bm = new Bitmap(new System.IO.MemoryStream(original, false));
bm = ConvertToBitonal(bm);
System.IO.MemoryStream s = new System.IO.MemoryStream();
bm.Save(s, System.Drawing.Imaging.ImageFormat.Tiff);
return s.ToArray();
}