public void ScaleImage()
{
string path=@"F:\Project\Ismymy\2-编程\Ismymy.Img\Img\avatar\84\184\284\love_max.jpg";
Image serverImage = Image.FromFile(path);
serverImage.GetThumbnailImage(600, 500, new Image.GetThumbnailImageAbort(IsTrue), IntPtr.Zero); // 对原图片进行缩放
//========================================================
serverImage.Save(path, ImageFormat.Jpeg);//这个地方总是报“GDI+ 中发生一般性错误”
//========================================================
serverImage.Dispose();
}
public bool IsTrue() // 在Image类别对图片进行缩放的时候,需要一个返回bool类别的委托
{
return true;
}
解决方法:赋予 NETWORK SERVICE 帐户以写权限。
2. 指定的物理路径不存在。
解决方法:
在调用 Save 方法之前,先判断目录是否存在,若不存在,则创建。
if (!Directory.Exists(dirpath))
Directory.CreateDirectory(dirpath);
3. 保存的文件已存在并因某种原因被锁定。
解决方法:
重启IIS,解除锁定。并在代码中使用 using 语句,确保释放 Image 对象所使用的所有资源。
在代码中使用 using 语句,释放 Image 对象所使用的所有资源。
权限问题
string path = @"F:\Project\Ismymy\2-编程\Ismymy.Img\Img\avatar\84\184\284\love_max.jpg";
Image _serverImage = Image.FromFile(path);
Bitmap serverImage = new Bitmap(_serverImage);
_serverImage.Dispose();
Image _serverImage = Image.FromFile(path);
Bitmap serverImage = new Bitmap(_serverImage);
_serverImage.Dispose();serverImage.GetThumbnailImage(600, 500, new Image.GetThumbnailImageAbort(IsTrue), IntPtr.Zero); // 对原图片进行缩放
//========================================================
serverImage.Save(path, ImageFormat.Jpeg);//这个地方总是报“GDI+ 中发生一般性错误”
//========================================================
serverImage.Dispose();
}