我必须将 32 位 rgb bmp 图像转换为 24 位 rgb bmp。
这就是我想要做的
Bitmap b1=new Bitmap(sorecFileName);
Bitmap b2=new
Bitmap(b1.Size.Width,b1.Size.Height,System.Drawing.Imaging.PixelFormat.Format24bppRgb);
b2.SetResolution(b1.HorizontalResolution, b1.VerticalResolution);
Graphics g=Graphics.FromImage(b2);
g.DrawImage(b1,0,0);
//continue to draw on g here to add text or graphics.
g.Dispose();
b2.Save(destinationFileName);
代码编译良好并生成 24bpp 的输出图像,但不再是 rgb 格式。为什么会这样?
我想通了,因为我有一个库,该库将图像输入为 rgb24 并显示它。因此,当我尝试将上述代码生成的文件作为函数的输入时,它会显示嘈杂的图像。
但是,如果我在paint中打开同一个文件并将其另存为24bpp bmp,然后将其输入到函数中,则图片显示正常。我错过了什么?