我正面临一个我无法解决的问题,所以我决定问你们。
我的代码非常简单:
public void OpenSaveImageDialog(Bitmap bitmapImage)
{
var dlg = new SaveFileDialog
{
DefaultExt = DialogType.Image.defaultExt,
Filter = DialogType.Image.filter
};
dlg.ShowDialog();
bitmapImage.Save(dlg.FileName);
}
Funcion参数是一个像素格式等于24bppRgb的位图。在保存操作期间,我必须预先设置pixelFormat和位深度。但是在我保存文件并检查其属性后,它被保存为32位深度图像。这是为什么?如何解决这个问题?
感谢。
答案 0 :(得分:1)
您可以使用以下扩展方法保存为Format24bppRgb
True -> False
如何使用并保存到名为fname的文件:
a -> Void
<强> EDIT2:强>
您可以使用以下方法将图像另存为ImageTo24bpp
public static class ImageExtensions
{
public static Bitmap ImageTo24bpp(this Image img)
{
var bmp = new Bitmap(img.Width, img.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
using (var gr = Graphics.FromImage(bmp))
gr.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height));
return bmp;
}
}