C#保存图片时提示“GDI+ 中发生一般性错误”

本文探讨了在使用GDI+保存图片时遇到的一般性错误,并提供了两种可能的解决方案:一是使用图片副本进行操作;二是跳过重复的图片以避免覆盖导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:保存图片时有时正常,有时出现如下错误:
 
********** 异常文本 **************
System.Runtime.InteropServices.ExternalException: GDI+ 中发生一般性错误。
   在 System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams)
   在 System.Drawing.Image.Save(String filename, ImageFormat format)
   在 SelfFilling.XYYT.Business.FrmLogin.ReadCard()
   在 SelfFilling.XYYT.Business.FrmLogin.timer1_Tick(Object sender, EventArgs e)
   在 System.Windows.Forms.Timer.OnTick(EventArgs e)
   在 System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
 
此问题发生在图片刚刚被窗口的Picture控件使用过,但是使用它的窗口已经关闭。然后打算使用同名图片覆盖此图片的时候,偶尔会出现此错误,再次保存就成功了。所以可能是图片在使用过程中不能修改删除。
 
考虑使用下列方法解决:
方法一:使用的时候创建一个图片的副本,使用副本。
方法二:发现相同的图片,跳过,不必覆盖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值