图像旋转内存错误

本文关键字:错误 内存 旋转 图像 | 更新日期: 2023-09-27 18:00:44

我在C#中使用了一个简单的Image.RotateFlip()方法,但我一直收到一个错误,说"内存不足"。我通过探查器运行了它,发现它发生在System.Drawing.Image.FromFile()上;

这是我的代码:

 protected void rotatePic(object sender, EventArgs e)
    {
        ImageButton img = sender as ImageButton;
        string url = img.ImageUrl.Split('?')[0];
        System.Drawing.Image pic = System.Drawing.Image.FromFile(Server.MapPath(url));
        pic.RotateFlip(System.Drawing.RotateFlipType.Rotate270FlipNone);
        pic.Save(Server.MapPath(url));
        pic.Dispose();
        img.ImageUrl = img.ImageUrl + "?" + DateTime.Now.ToString();
    }

图像旋转内存错误

您的问题缺少很多相关信息。第一图像有多大。其次,这个代码是如何被调用的。它经常被呼叫吗?您什么时候在pic上呼叫Dispose()?System.Drawing.Image实现了IDisposable,所以您的代码(可能)应该是这样的:

using(var pic = System.Drawing.Image.FromFile(Server.MapPath(url)))
{
    pic.RotateFlip(System.Drawing.RotateFlipType.Rotate270FlipNone);
    pic.Save(Server.MapPath(url));
}

如果你做了几次,你不应该忘记Dispose()你的图像。