c# GDI+保存图像时的一般错误

本文关键字:错误 GDI+ 保存 图像 | 更新日期: 2023-09-27 18:13:48

我想保存一个System.Drawing.Image到一个文件。

这是我的代码:

    using(WebClient webClient = new WebClient())
        webClient.DownloadFile(new Uri(defaultPic), defaultPicPath);
    var tempImg = System.Drawing.Image.FromFile(defaultPicPath);
    using(System.Drawing.Image RoundedImage = RoundCorners(tempImg, 90, System.Drawing.Color.Transparent)) {
        RoundedImage.Save(defaultPicPath);
        tempImg.Dispose();
    }

RoundedImage.Save(...);行,我得到错误

GDI+的一般错误。

我很确定文件没有被任何WPF控件或图像锁定。

感谢任何帮助!

谢谢!

c# GDI+保存图像时的一般错误

从你的代码中我可以看到,你没有释放文件。

,

  1. 首先读取图像并创建它的本地深度副本(tempImage)。(注意:使用克隆方法的浅拷贝将不起作用)

  2. 释放镜像文件

  3. 修改本地副本

  4. 覆盖原文件

  5. 处理本地副本(tempImage)。

尝试以下操作,应该可以;

Image tempImage;
using(var img = System.Drawing.Image.FromFile(defaultPicPath))
    tempImage=new Bitmap(img);
using(System.Drawing.Image RoundedImage = RoundCorners(tempImg, 90, System.Drawing.Color.Transparent))
    RoundedImage.Save(defaultPicPath);
tempImg.Dispose();