图像旋转内存错误
本文关键字:错误 内存 旋转 图像 | 更新日期: 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()你的图像。