我有一个代码可以在我的asp.net C#应用程序中旋转图像 这是我的代码:
protected void ImgBtn180_Click(object sender, ImageClickEventArgs e)
{
try
{
string vImageName = LblFarmId.Text;
string vPath = "~/attachments/survey/" + vImageName + ".jpg";
Image1.ImageUrl = vPath;
//get the path to the image
string path = Server.MapPath(vPath);
//create an image object from the image in that path
System.Drawing.Image img = System.Drawing.Image.FromFile(path);
//rotate the image
img.RotateFlip(RotateFlipType.Rotate180FlipXY);
//save the image out to the file
img.Save(path);
//release image file
img.Dispose();
Random rnd = new Random();
Image1.ImageUrl = vPath + "?" + rnd;
}
catch (Exception ee)
{
LblCatchError.Text = ee.ToString();
}
}
当我在服务器上运行它时,我有时会收到以下错误
System.Runtime.InteropServices.ExternalException:GDI +中发生一般错误。在System.Drawing.Image.Save(String filename,ImageCodecInfo encoder,EncoderParameters encoderParams)处于System.Drawing.Image.Save(String filename,ImageFormat格式)的System.Drawing.Image.Save(String filename)
有时出现以下错误
System.OutOfMemoryException:内存不足。在 System.Drawing.Image.FromFile(String filename,Boolean System.Drawing.Image.FromFile上的useEmbeddedColorManagement(String 文件名)
我阅读了有关此错误的所有文章和解决方案,但没有任何效果。 有些人说,"确保所需的文件夹具有读/写权限。" 它有权限..
有人说,"你必须处理图像对象以释放服务器上的内存。" , 我已经有了代码img.Dispose();发布图像文件,代码中可能存在什么问题?有什么建议吗?
答案 0 :(得分:0)
我将此(Rotate180FlipXY)更改为(Rotate180FlipNone),之后问题已解决