Advertisement

C# 图片资源无法释放

阅读量:

在使用C#开发图像编辑功能的过程中,遇到了一个较为异常的问题。

由于需要对本地图片进行修改并保存,因此选择了最直接的方案,即将图片加载至PictureBox控件中,完成编辑后通过Image类的Save方法直接覆盖原文件进行保存。此方法在XP系统以及以管理员权限登录的Win7系统中运行正常,但在普通用户权限下登录的Win7系统中却出现了“A generic error occurred in GDI+”的错误提示。经过调试跟踪发现,问题出在调用Image类Save方法进行覆盖保存时发生异常。随后尝试了一种折中的实现方式,即在覆盖保存前先删除原文件,再将Image中的图像按照原路径重新保存。这种方法避免了之前出现的GDI+错误,但在删除原文件时却遇到了“The process cannot access the file 'x:\xx.jpg' because it is being used by another process.”的提示。相关代码如下:

复制代码
  Image Src_Pic = Image.FromFile(fileName);

    
  bgBMP = new Bitmap((Image)Src_Pic.Clone());
    
  Src_Pic.Dispose();
    
    
    
    

在此处已经将原文件的Imag

全部评论 (0)

还没有任何评论哟~