我想在旋转后保存具有相同名称和路径的图像。 我有在梅索德错误保存(发生一般性错误GDI +)发生了一般性错误gdi + c#
下面的代码:
string path = @"mypath";
Bitmap image = new Bitmap(path + aspximage.ImageUrl, true);
image.RotateFlip(System.Drawing.RotateFlipType.Rotate90FlipNone);
//The error is generated here
image.Save(path + aspximage.ImageUrl, ImageFormat.Png);
// I have added this line so that the browser can display it
aspximage.ImageUrl = aspximage.ImageUrl + "&t=" + DateTime.Now.Second;
我从硬盘驱动器的本地路径得到我的形象。为此,我使用ASHX处理程序所以我IMAGEURL是一样的东西
这里的Handler.ashx的代码 “Handler.ashx N = nameimage.png?”:
public void ProcessRequest (HttpContext context) {
string imgName = context.Request.QueryString["n"];
context.Response.ContentType = "image/png";
string path = @"myPath" + imgName;
Image image = Image.FromFile(path);
image.Save(context.Response.OutputStream, ImageFormat.Png);
}
如果我删除此行
// I have added this line so that the browser can display it
aspximage.ImageUrl = aspximage.ImageUrl + "&t=" + DateTime.Now.Second;
我的代码变得很好,但浏览器无法重新加载我的图像。
如果我离开它,我的代码运行良好,但在同一图像上的3个或更多执行调用后生成错误。
你有什么建议?
谢谢你的帮助。
你正在使用哪个版本的DevExpress?这个问题可能不会在我们这边重演。你可以提供一个小样本应用程序来重现行为吗?很容易确定问题出在您的应用程序或控件中。 DevExpress支持是最好的地方问一个问题,看起来像控制错误,而不是应用程序错误.. –
嗨,感谢您的回复, 问题是不是在DevExpress控制,即使我改变了另一个控制asp我仍然有同样的错误。 仅当我在图像URL中添加** DateTime.Now.Second **并且仅在相同图像上执行3次或更多的执行调用后才会生成错误。 如果我删除** DateTime.Now.Second **浏览器不能再重新加载我的图像,导致url图像没有改变。 你能告诉我关于另一种解决方案来旋转图像90°并将其保存在我的路径,并再次在JS(客户端)或(服务器端)重新加载它吗? –
在保存的图像上进行旋转操作后,进行ajax调用,返回图像格式为base64的字符串。 –