这是我的部分代码:
public void SaveBitmap()
{
EncoderParameters eps = new EncoderParameters(1);
EncoderParameter ep = new EncoderParameter (Encoder.ColorDepth,24L);
eps.Param[0] = ep ;
b.Save(FilePath,GetEncoderInfo("image/bmp"),eps);//设置图片的编码方式
//第一次运行正常,程序不退出第2次运行就会报异常 GDI+ 中发生一般性错误 b.Dispose();
graphics.Dispose();
}
//得到图像的编码信息
private ImageCodecInfo GetEncoderInfo(String mimeType)
{
ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
for(int j = 0; j < encoders.Length; ++j)
{
if(encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
查了不少资料,但是都没什么明确的解决方法,请高手赐教多谢了
public void SaveBitmap()
{
EncoderParameters eps = new EncoderParameters(1);
EncoderParameter ep = new EncoderParameter (Encoder.ColorDepth,24L);
eps.Param[0] = ep ;
b.Save(FilePath,GetEncoderInfo("image/bmp"),eps);//设置图片的编码方式
//第一次运行正常,程序不退出第2次运行就会报异常 GDI+ 中发生一般性错误 b.Dispose();
graphics.Dispose();
}
//得到图像的编码信息
private ImageCodecInfo GetEncoderInfo(String mimeType)
{
ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
for(int j = 0; j < encoders.Length; ++j)
{
if(encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
查了不少资料,但是都没什么明确的解决方法,请高手赐教多谢了
graphics.Dispose();
去掉
去掉也不行啊,很早就这样做过!用什么方法可以彻底销毁,感觉这2个方法好像没有真正的释放
是不是这个文件已经被转化成流放到内存当中了???
如果是那样,应该怎么去销毁它?
如果是这样,简单的将picturebox1.image=null就可以了。因为image得到是引用并不是一个新的实例。