Image.Save()发生“GDI+ 中发生一般性错误”

从数据库中读取的图片是byte[]类型,将其转换成Image可以正常显示,但是调用image.Save()时会发生“GDI+ 中发生一般性错误”。 public static System.Drawing.Image ToImage(byte[]bytes) { System.IO.Stream ms = new System.IO.MemoryStream(bytes); System.Drawing.Image image =System.Drawing.Image.FromStream(ms); ms.Close(); image.Save( "C:1.bmp ");//这一句出错 return Image; } 怎样解决呢?在开发.NET应用中,使用 System.Drawing.Image.Save 方法而导致“GDI+ 中发生一般性错误”的发生,通常有以下三种原因: 1. 相应的帐户没有写权限。 解决方法:赋予 NETWORK SERVICE 帐户以写权限。 2. 指定的物理路径不存在。 解决方法: 在调用 Save 方法之前,先判断目录是否存在,若不存在,则创建。 if (!Directory.Exists(dirpath)) Directory.CreateDirectory(dirpath); 3. 保存的文件已存在并因某种原因被锁定。 解决方法: 重启IIS,解除锁定。并在代码中使用 using 语句,确保释放 Image 对象所使用的所有资源。 image.Save(); 保存到MemoryStream也是一样,如果存在未释放的对象那也只有可能是ms了,但是怎样释放它呢,我用using也不行啊!!! 把ms.Close();放在image.Save( "C:1.bmp ");后面****** 图像还没保存,流就关闭了。感谢 owennol !!!基本上 这是个微软的bug
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值