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+ 中发生一般性错误。
确保这两个路径不是同一个文件,以便确保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+ 中发生一般性错误