8ビットのグレースケールTIFFのByte[]を受け取り、1ビット(白黒)のTIFFのByte []を返すC#関数が必要です。
私はTIFFの操作にかなり慣れていませんが、一般的な考え方は、TIFFをグレースケールまたはカラーから白黒/モノクロ/バイナリイメージ形式に変換する必要があるということです。
WCFを介して画像をByte[]として受信し、さらに処理を行うコンポーネントに送信するために、この白黒変換を行う必要があります。現時点では、ファイルとして保存する予定はありません。
参考までに、テストクライアントでは、次のように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();
- - - - アップデート - - - - -
ここには複数の良い答えがあると思いますが、最終的にはCodeProjectサイトのコードを使用し、次のメソッドを追加して、変換関数をオーバーロードしてByte[]とビットマップを受け入れます。
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();
}