GDI+问题,如何在图片上绘制文字

supper3000 2004-12-28 09:15:13
想在一个图片上的制定位置绘制一段文字,图片格式不限。请教如何实现
...全文
376 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ma007 2005-01-12
  • 打赏
  • 举报
回复
mark
supper3000 2004-12-28
  • 打赏
  • 举报
回复
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Runtime.InteropServices.ExternalException: GDI+ 中发生一般性错误。
源错误:
行 58: g.CompositingMode = CompositingMode.SourceOver;
行 59: }
行 60: bitmap.Save("image_new.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
行 61: }
行 62: }
源文件: c:\inetpub\wwwroot\gdi\webform1.aspx.cs 行: 60
我已经把文件夹的写权限打开了。
supper3000 2004-12-28
  • 打赏
  • 举报
回复
上面的问题已经解决,但是现在又有新问题了,我做的是BS结构的东西,现在无法存储,是什么原因?
supper3000 2004-12-28
  • 打赏
  • 举报
回复
无法从带有索引像素格式的图像创建 Graphics 对象。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Exception: 无法从带有索引像素格式的图像创建 Graphics 对象。
源错误:
行 52: {
行 53: Bitmap bitmap = new Bitmap("c:\\pic.bmp"); //参考MSDN
行 54: using(Graphics g = Graphics.FromImage(bitmap))
行 55: {
行 56: SolidBrush burshText = new SolidBrush(Color.Yellow);
第54行报告错误,不解,
tengjian1981 2004-12-28
  • 打赏
  • 举报
回复
up
兔子-顾问 2004-12-28
  • 打赏
  • 举报
回复
楼上的new b,运行效率应该很高。学习一下。
mobydick 2004-12-28
  • 打赏
  • 举报
回复
思路:
1.把需要画文字的图片放到内存中
2.把文字画上
3.保存画过文字的图片

Bitmap bitmap = new Bitmap(".\\image.bmp"); //Bitmap的构造函数参考MSDN
using(Graphics g = Graphics.FromImage(bitmap))
{
SolidBrush burshText = new SolidBrush(Color.Yellow);
g.DrawString("this is text", new Font("宋体", 9f), burshText, 0, 0);
g.CompositingMode = CompositingMode.SourceOver;
}
bitmap.Save("image_new.bmp", System.Drawing.Imaging.ImageFormat.Bmp);//参数参考MSDN
cpp2017 2004-12-28
  • 打赏
  • 举报
回复
System.Drawing.Image bmp = System.Drawing.Bitmap.FromFile("c:\\aa.bmp"); System.Drawing.Graphics g = Graphics.FromImage(bmp); g.DrawString("hello!",new Font("宋体",12),new SolidBrush(Color.Red),new System.Drawing.Rectangle(0,0,100,100)); bmp.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg); bmp.Dispose(); ____________________________ (2004年12月28日 09时22分59秒)
xinminhuibaobao 2004-12-28
  • 打赏
  • 举报
回复
在图片容器上花文字,然后控件执行保存。有帖子的。vb.net版有几篇这个问题的贴。
mobydick 2004-12-28
  • 打赏
  • 举报
回复
必须要有绝对路径吧,相对路径是相对于你的网站的路径,而存储时必须要存储到相对于本地的路径。
所以,必须写成"c:\\image_new.bmp"(例子),而且必须添加用户asp.net machine account的相应权限。

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧