Мне нужно преобразовать 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, и введу его в функцию, картинка будет отображаться нормально. Что мне не хватает?