ローカルレポートを画像形式で保存しようとしています。しかし、DeviceInfo
のColorDepth
設定が機能しないことがわかりました。
string mime, encoding, fileNameExtension;
string[] streams;
Warning[] warnings;
byte[] bytes = report.Render("IMAGE", @"<DeviceInfo><OutputFormat>TIFF</OutputFormat><ColorDepth>8</ColorDepth><StartPage>0</StartPage></DeviceInfo>", out mime, out encoding, out fileNameExtension, out streams, out warnings);
FileStream fs = new FileStream("C:\\imgRep.tiff", FileMode.OpenOrCreate);
fs.Write(bytes, 0, bytes.Length);
fs.Close();
値に関係なく、結果は=24の.tiffColorDepth
ファイルになります。ColorDepth
誰かがこのバグを修正する方法を知っていますか?
このバイトを別のバイトに変換しますPixelFormat
:
Bitmap orig = new Bitmap(new MemoryStream(bytes));
Bitmap clone = orig.Clone(new Rectangle(0, 0, orig.Width, orig.Height), PixelFormat.Format8bppIndexed);
clone.Save(@"c:\imgPixelF.tiff", ImageFormat.Tiff);
しかし、それが良い決断かどうかはわかりません。