これはビットマップのピクセル形式を変換する標準的な方法のようですが、白黒形式に変換すると非常に悪い結果が得られます:
// convert to black & white bitmap
FormatConvertedBitmap monoBitmap = new FormatConvertedBitmap(bitmap, PixelFormats.BlackWhite, null, 0);
// save black & white bitmap to file
fileName = string.Format("{0}.bmp", data.SelectedProduct.Code);
bitmapEncoder = new BmpBitmapEncoder();
bitmapEncoder.Frames.Add(BitmapFrame.Create(monoBitmap));
using (Stream stream = File.Create(fileName))
{
bitmapEncoder.Save(stream);
}
結果の画像ファイルは非常に粗く、ピクセル化されています。ラインプリンターに送る必要があるので、シャープなエッジが必要です。
変換前のオリジナルは見栄えがよく (32BPP 色)、IrfanView などを使用してオリジナルを手動で白黒に変換すると、.NET よりもはるかに優れた結果が得られます。
FormatConvertedBitmap の代わりに .NET でこれを行う別の方法はありますか?