using
System.Drawing;
using
System.IO;
using
System.Drawing.Imaging;
private
void
AddTextToImg(
string
fileName,
string
text)
{
if
(!File.Exists(MapPath(fileName)))
{
throw
new
FileNotFoundException(
"The file don't exist!"
);
}
if
( text ==
string
.Empty )
{
return
;
}
//还需要判断文件类型是否为图像类型,这里就不赘述了
System.Drawing.Image image = System.Drawing.Image.FromFile(MapPath(fileName));
Bitmap bitmap =
new
Bitmap(image,image.Width,image.Height);
Graphics g = Graphics.FromImage(bitmap);
float
fontSize = 12.0f;
//字体大小
float
textWidth = text.Length*fontSize;
//文本的长度
//下面定义一个矩形区域,以后在这个矩形里画上白底黑字
float
rectX = 0;
float
rectY = 0;
float
rectWidth = text.Length*(fontSize+8);
float
rectHeight = fontSize+8;
//声明矩形域
RectangleF textArea =
new
RectangleF(rectX,rectY,rectWidth,rectHeight);
Font font =
new
Font(
"宋体"
,fontSize);
//定义字体
Brush whiteBrush =
new
SolidBrush(Color.White);
//白笔刷,画文字用
Brush blackBrush =
new
SolidBrush(Color.Black);
//黑笔刷,画背景用
g.FillRectangle(blackBrush,rectX,rectY,rectWidth,rectHeight);
g.DrawString(text,font,whiteBrush,textArea);
MemoryStream ms =
new
MemoryStream( );
//保存为Jpg类型
bitmap.Save(ms,ImageFormat.Jpeg);
//输出处理后的图像,这里为了演示方便,我将图片显示在页面中了
Response.Clear();
Response.ContentType =
"image/jpeg"
;
Response.BinaryWrite( ms.ToArray() );
g.Dispose();
bitmap.Dispose();
image.Dispose();
}
|
调用时很简单,
|
1
|
|
本文介绍了一种使用C#在现有图片上添加文字的方法。通过Bitmap和Graphics对象,在指定位置绘制带背景的文字,并最终保存为JPEG格式。此过程涉及字体设置、绘制区域定义及图像输出。
3704

被折叠的 条评论
为什么被折叠?



