1、先看报错时的源代码,此代码已经让用户用了很长时间,都是没有问题的,突然有一点,客户反馈说软件报错“GDI+中发生一般性错误”;我调试了一下,的确这样报错的,那为什么之前一直没有报错呢?
2、SolidBrush brush = new SolidBrush(Color.White); StringFormat format = new StringFormat(StringFormatFlags.NoClip); Bitmap image = new Bitmap(w, h); Graphics g = Graphics.FromImage(image); g.Clear(Color.White);//透明 image.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg); g.Dispose(); image.Dispose(); image = null;
3、修正后的代码,主要是加了这段,using (Bitmap image = new Bitmap(w, h)),让系统自动释放掉资源,这个问题就解决了。
4、SolidBrush brush = new SolidBrush(Color.White); StringFormat format = new StringFormat(StringFormatFlags.NoClip); using (Bitmap image = new Bitmap(w, h)) { Graphics g = Graphics.FromImage(image); g.Clear(Color.White);//透明 image.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg); g.Dispose(); }