問題描述
我有一個函數,它首先從磁盤讀取圖像,調整其大小,然后保存到另一個目錄.
I have a function which first reads an image from disk, resizes it and then saves to another directory.
當我使用 Bitmap.Save(directory + theimagename) 時,它會返回我在問題標題中所述的錯誤.
when i use the Bitmap.Save(directory + theimagename) it returns the error as i stated in the question title.
我檢查了目錄是否正確,該目錄中不存在給定的圖像名稱.
i checked the directory is right, and the given image name doesn't exist in that dir.
奇怪的是,相同的代碼在本地機器上運行良好.但是當我將它上傳到我的共享托管空間時,它就不起作用了.
what is weird, is that the same code works great on the local machine. but when i upload it to my shared hosting space, it just doesn't work.
代碼如下.
bmpOut = new Bitmap(Size, Size);
Graphics g = Graphics.FromImage(bmpOut);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.FillRectangle(Brushes.White, 0, 0, Size, Size);
int topBottomPadding = 0; int leftRightPadding = 0;
if (Size > lnNewWidth + 1)
leftRightPadding = Convert.ToInt32((Size - lnNewWidth) / 2);
else if (Size > lnNewHeight + 1)
topBottomPadding = Convert.ToInt32((Size - lnNewHeight) / 2);
g.DrawImage(loBMP, leftRightPadding, topBottomPadding, lnNewWidth, lnNewHeight);
Bitmap bmp = new Bitmap(bmpOut);
if (bmp != null)
bmp.Save(ResizedOutput); // C:InetpubvhostsDomainNamehttpdocsProductImages500pxgigabyte_ga_ep45_ds4_profilelarge[1].jpg
bmp.Dispose();
bmpOut.Dispose();
g.Dispose();
loBMP.Dispose();
堆棧跟蹤:
[ExternalException (0x80004005): A generic error occurred in GDI+.]
System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams) +377630
System.Drawing.Image.Save(String filename, ImageFormat format) +69
System.Drawing.Image.Save(String filename) +25
Utilities.ResizeImage(String fileName, String mode) in c:inetpubvhostsatuhanakcay.comhttpdocsApp_CodeUtilities.cs:181
Link.ToProductImage(String fileName) in c:inetpubvhostsatuhanakcay.comhttpdocsApp_CodeLink.cs:79
Product.PopulateControls(ProductDetails pd) in c:inetpubvhostsatuhanakcay.comhttpdocsProduct.aspx.cs:37
Product.Page_Load(Object sender, EventArgs e) in c:inetpubvhostsatuhanakcay.comhttpdocsProduct.aspx.cs:20
推薦答案
來自 ASP Net - GDI+ 并在服務器上保存 JPG 或 BMP
99.9% 的情況下,在使用 GDI 時,發生一般錯誤"意味著您要保存到的目錄沒有適當的權限.通常,您需要確保目錄允許 ASP.NET修改文件.
99.9% of the time, when using GDI, 'a generic error occured' means that the directory you are trying to save to doesn't have the proper permissions. Typically, you need to make sure that the directory is allowing ASP.NET to modify files.
你檢查權限了嗎?
這篇關于Bitmap.Save 上的 ASP.NET 錯誤“異常 (0x80004005):GDI+ 中發生一般錯誤".的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!