Benötigen Sie die C # -Funktion, um Graustufen-TIFF in Schwarzweiß-TIFF (monochrom / 1BPP) umzuwandeln

Ich benötige eine C # -Funktion, die ein Byte [] eines 8-Bit-Graustufen-TIFF und ein Byte [] eines 1-Bit-TIFF (Schwarzweiß) zurückgibt.

Ich bin ziemlich neu in der Arbeit mit TIFFs, aber die allgemeine Idee ist, dass wir sie von Graustufen oder Farbe in Schwarzweiß / Monochrom / Binärbildformat konvertieren müssen.

Wir empfangen die Bilder über eine WCF als Byte [], dann müssen wir diese Konvertierung in Schwarzweiß durchführen, um sie an eine Komponente zu senden, die die weitere Verarbeitung durchführt. Wir planen zum jetzigen Zeitpunkt nicht, sie jemals als Dateien zu speichern.

In unserem Testclient erstellen wir als Referenz das 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();

--------aktualisieren---------

Ich denke, dass es hier mehr als eine gute Antwort gibt, aber am Ende haben wir den Code von der CodeProject-Site mit der folgenden Methode verwendet, um die Konvertierungsfunktion zu überladen und Byte [] sowie Bitmap zu akzeptieren:

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

Antworten auf die Frage(7)

Ihre Antwort auf die Frage