C# 如何制作图像。另存为24位图像?
如何让C#强制将保存的位图图像保存为24位图像,这在Windows中获取图像的右键单击属性时可以看到。我保存的所有图像都设置为32位。 我尝试了下面的代码,但没有成功。源图像也都是24位的,但始终保存为32位图像C# 如何制作图像。另存为24位图像?,c#,gdi+,C#,Gdi+,如何让C#强制将保存的位图图像保存为24位图像,这在Windows中获取图像的右键单击属性时可以看到。我保存的所有图像都设置为32位。 我尝试了下面的代码,但没有成功。源图像也都是24位的,但始终保存为32位图像 ImageCodecInfo bmpCodec = FindEncoder(ImageFormat.Bmp); EncoderParameters parameters = new EncoderParameters(); parameters.Param[0] = new Encod
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位图像的其他程序读取
ImageCodecInfo bmpCodec = FindEncoder(ImageFormat.Bmp);
EncoderParameters parameters = new EncoderParameters();
parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 24);
imgCheque.Save(DestinationFile.ToString(), bmpCodec, parameters);
提前感谢,
这有什么用吗
// 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);
}
试试这个
ImageCodecInfo bmpCodec = FindEncoder(ImageFormat.Bmp);
EncoderParameters parameters = new EncoderParameters();
parameters.Param[0] = new EncoderParameter(Encoder.ColorDepth, 24L);
imgCheque.Save(DestinationFile.ToString(), bmpCodec, parameters);
我认为在张贴的代码中有错误。。。仔细检查
bmpCode
vsjpegodec
是的,很抱歉,我正在尝试创建位图。我现在已经修改了。谢谢