Precisa de função C # para converter TIFF em escala de cinza em preto e branco (monocromático / 1BPP) TIFF

Eu preciso de uma função C # que levará um Byte [] de um TIFF de escala de cinza de 8 bits e retornará um Byte [] de um TIFF de 1 bit (preto e branco).

Eu sou relativamente novo em trabalhar com TIFFs, mas a ideia geral é que precisamos convertê-los de escala de cinza ou cor para preto e branco / monocromático / formato de imagem binária.

Nós recebemos as imagens através de um WCF como um byte [], então precisamos fazer esta conversão para preto e branco, a fim de enviá-los para um componente que faz um processamento adicional. Nós não planejamos, neste momento, salvá-los como arquivos.

Para referência, no nosso cliente de teste, é assim que criamos o 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();

--------atualizar---------

Eu acho que pode haver mais de uma boa resposta aqui, mas acabamos usando o código do site CodeProject com o seguinte método adicionado para sobrecarregar a função de conversão para aceitar Byte [], bem como bitmap:

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

questionAnswers(7)

yourAnswerToTheQuestion