c# 怎么解决winform下保存picture box的图片防止GDI+一般错误 100
因为图片在程序中被修改,画上了一些东西,所以只能从这里保存。我目前的方法是Bitmapbmp=newBitmap(picturebox1.Image);bmp.Save(...
因为图片在程序中被修改,画上了一些东西,所以只能从这里保存。
我目前的方法是
Bitmap bmp = new Bitmap(picturebox1.Image);
bmp.Save(path + "\\" + "1.bmp");
bmp.Dispose();
很偶尔的会出现上述错误,但我再保存一下就好了
就解决办法 展开
我目前的方法是
Bitmap bmp = new Bitmap(picturebox1.Image);
bmp.Save(path + "\\" + "1.bmp");
bmp.Dispose();
很偶尔的会出现上述错误,但我再保存一下就好了
就解决办法 展开
1个回答
2017-09-28
展开全部
文件已经被占用 无法覆写
Bitmap对象属于非托管的GDI+对象 它会强烈的关联文件句柄
如果要对图像进行转存操作 建议使用Image.Save(Stream, ImageFormat)这个重载 先保存到内存流或者临时文件中,然后执行Bitmap.Dispose() 把原来图像资源释放
最后再把刚才的临时文件或者临时内存 覆写回文件
Bitmap对象属于非托管的GDI+对象 它会强烈的关联文件句柄
如果要对图像进行转存操作 建议使用Image.Save(Stream, ImageFormat)这个重载 先保存到内存流或者临时文件中,然后执行Bitmap.Dispose() 把原来图像资源释放
最后再把刚才的临时文件或者临时内存 覆写回文件
追问
我先在这样
MemoryStream ms = new MemoryStream();
picturebox.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询