Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何制作图像。另存为24位图像?_C#_Gdi+ - Fatal编程技术网

C# 如何制作图像。另存为24位图像?

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

如何让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位图像的其他程序读取

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
vs
jpegodec
是的,很抱歉,我正在尝试创建位图。我现在已经修改了。谢谢