我想在旋轉後保存具有相同名稱和路徑的圖像。 我有在梅索德錯誤保存(發生一般性錯誤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的字符串。 –