如何获取C#以强制保存的位图图像保存为24位图像,这可以在Windows中获得图像的右键单击属性时看到。我保存的所有图像都设置为32位。 我尝试了下面的代码没有运气。源图像也都是24位,但始终保存为32位图像。
ImageCodecInfo bmpCodec = FindEncoder(ImageFormat.Bmp);
EncoderParameters parameters = new EncoderParameters();
parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 24);
imgCheque.Save(DestinationFile.ToString(), bmpCodec, parameters);
图像必须正确24位,因为其他程序无法处理32位图像。
提前致谢,
Soultech
答案 0 :(得分:1)
这有用吗?
// imgCheque source created somewhere else up here
using (Bitmap blankImage = new Bitmap(imgCheque.Width, imgCheque.Height, PixelFormat.Format24bppRgb))
{
using (Graphics g = Graphics.FromImage(blankImage))
{
g.DrawImageUnscaledAndClipped(imgCheque, new Rectangle(Point.Empty, imgCheque.Size));
}
ImageCodecInfo bmpCodec = FindEncoder(ImageFormat.Bmp);
blankImage.Save(@"C:\TEMP\output.bmp", bmpCodec, null);
}
答案 1 :(得分:0)
尝试一下?
ImageCodecInfo bmpCodec = FindEncoder(ImageFormat.Bmp);
EncoderParameters parameters = new EncoderParameters();
parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 24L);
imgCheque.Save(DestinationFile.ToString(), bmpCodec, parameters);