ASP.NET 保存图片(GDI+ 中发生一般性错误)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET 保存图片(GDI+ 中发生一般性错误)相关的知识,希望对你有一定的参考价值。

/// <summary>
/// 在图片上增加文字水印
/// </summary>
/// <param name="Path">原服务器图片路径</param>
/// <param name="Path_sy">生成的带文字水印的图片路径</param>
protected void AddShuiYinWord(string Path, string Path_sy)

string addText = "测试水印";
System.Drawing.Image image = System.Drawing.Image.FromFile(Path);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image);
g.DrawImage(image, 0, 0, image.Width, image.Height);
System.Drawing.Font f = new System.Drawing.Font("Verdana", 16);
System.Drawing.Brush b = new System.Drawing.SolidBrush(System.Drawing.Color.Blue);

g.DrawString(addText, f, b, 15, 15);
g.Dispose();

image.Save(Path_sy);//发生异常
image.Dispose();


异常详细信息: System.Runtime.InteropServices.ExternalException: GDI+ 中发生一般性错误。

参考技术A Path, Path_sy
确保这两个路径不是同一个文件,以便确保Path_sy这个文件没有其他进程使用,
参考技术B /// <summary>
/// 在图片上增加文字水印
/// </summary>
/// <param name="Path">原服务器图片路径</param>
/// <param name="Path_sy">生成的带文字水印的图片路径</param>
protected void AddShuiYinWord(string Path, string Path_sy)

string addText = "测试水印";
System.Drawing.Image image = System.Drawing.Image.FromFile(Path);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image);
System.Drawing.Font f = new System.Drawing.Font("Verdana", 16);
System.Drawing.Brush b = new System.Drawing.SolidBrush(System.Drawing.Color.Blue);
g.DrawString(addText, f, b, 15, 15);
g.Dispose();
image.Save(Path_sy);
image.Dispose();

C#picturebox覆盖保存GDI+ 中发生一般性错误

我用 Image img = Image.FromFile(@"c:\xiugai.jpg"); pictureBox2.Image = img;加载图片,加载之前要向图片上填加东西,但执行第二次时就出现了这个错误,应该具体怎么写代码

文件已经被占用 无法覆写

Bitmap对象属于非托管的GDI+对象 它会强烈的关联文件句柄
如果要对图像进行转存操作 建议使用Image.Save(Stream, ImageFormat)这个重载 先保存到内存流或者临时文件中,然后执行Bitmap.Dispose() 把原来图像资源释放
最后再把刚才的临时文件或者临时内存 覆写回文件
参考技术A 第一次执行完成之后,图片加载到了picturebox之后,将Image类的实例销毁如何?

以上是关于ASP.NET 保存图片(GDI+ 中发生一般性错误)的主要内容,如果未能解决你的问题,请参考以下文章

用vs2010编写C#程序,将图片保存到一个文件夹中,下次循环覆盖保存,提示gdi+中发生一般性错误。。。

图片在保存的时候===》出现这个异常:GDI+ 中发生一般性错误

.net c#的图片保存时发生"gdi+发生一般性错误"

C#picturebox覆盖保存GDI+ 中发生一般性错误

求教:C#中winform 并未使用任何图片,但报错”GDI+ 中发生一般性错误“

GDI+、PNG 图像到 UNC 中发生一般错误