简单的在图片上加上文字的效果
2007-01-03 15:02
225 查看
先看看效果先
在地址栏输入后面的网址看看:http://www.conanlwl.net/bbspic/bbspic.aspx?style=1&t=Hello World!
其中style为图片模板ID,t为显示文本
建一页面,命名为bbspic.aspx,在其CS写下以下代码.
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Xml;
namespace BbsPic
...{
/**//// <summary>
/// BbsPic 的摘要说明。
/// 一个简单的在图片上加上文字水印的效果
/// 地址栏参数t为显示文本
/// 地址栏参数style为图片模板ID
/// Author:Conanlwl
/// http://www.conanlwl.net
/// </summary>
public class BbsPic : System.Web.UI.Page
...{
private XmlDocument myDoc = new XmlDocument();
priva
4000
te void Page_Load(object sender, System.EventArgs e)
...{
// 在此处放置用户代码以初始化页面
string str=Request.QueryString["t"];
int style=Convert.ToInt32(Request.QueryString["style"]);
if(style<1)style=1;
DrawPic(str,style);
}
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
...{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
...{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void DrawPic(string str,int style)
...{
try
...{
myDoc.Load(Server.MapPath("ImageInfo.xml"));
XmlNode xn = myDoc.SelectSingleNode("//Image[ID='" + style + "']");
XmlNodeList xnl = xn.ChildNodes;
if(str==null || str=="")str=xnl.Item(6).InnerText;
System.Drawing.Image image=System.Drawing.Image.FromFile(Server.MapPath(xnl.Item(1).InnerText));
Graphics g= Graphics.FromImage(image);;
Font font = new System.Drawing.Font(FontFamily.GenericSansSerif,20);
SolidBrush brush=new SolidBrush(Color.Black);
g.DrawString(str,font,brush,new Rectangle(int.Parse(xnl.Item(2).InnerText),int.Parse(xnl.Item(3).InnerText),int.Parse(xnl.Item(4).InnerText),int.Parse(xnl.Item(5).InnerText)));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
Response.ClearContent();
Response.ContentType = "image/Png";
Response.BinaryWrite(ms.ToArray());
image.Dispose();
g.Dispose();
}
catch(Exception ex)
...{
Response.Write(ex.Message);
Response.End();
}
}
}
}
以下是相应的XML文件ImageInfo.XML
<?xml version="1.0" encoding="GB2312" ?>
<ImageInfo>
<Image>
<ID>1</ID>
<URL>images/pic.jpg</URL>
<x>200</x>
<y>20</y>
<width>280</width>
<height>160</height>
<DefaultText><![CDATA[图片地址的格式为:http://www.conanlwl.net/bbspic/bbspic.aspx?stype=样式的数字&t=你要发表的文字]]></DefaultText>
</Image>
<Image>
<ID>2</ID>
<URL>images/pic01.jpg</URL>
<x>10</x>
<y>28</y>
<width>235</width>
<height>180</height>
<DefaultText><![CDATA[图片地址的格式为:http://www.conanlwl.net/bbspic/bbspic.aspx?stype=样式的数字&t=你要发表的文字]]></DefaultText>
</Image>
</ImageInfo>
每一个<Image>标签都是一张图片的模板信息.
ID为模板本身ID,也即地址栏中style所对应的参数.
URL模板图片的相对地址
x,y,width,height分别为图片模板中要显示文件的区域的矩形的左上角坐标x,y以及矩形的宽与高width,height,这四个值可以用PS或其它绘图软件从图片中获取
DefaultText为地址栏不传入t参数时的默认文本
在地址栏输入后面的网址看看:http://www.conanlwl.net/bbspic/bbspic.aspx?style=1&t=Hello World!
其中style为图片模板ID,t为显示文本
建一页面,命名为bbspic.aspx,在其CS写下以下代码.
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Xml;
namespace BbsPic
...{
/**//// <summary>
/// BbsPic 的摘要说明。
/// 一个简单的在图片上加上文字水印的效果
/// 地址栏参数t为显示文本
/// 地址栏参数style为图片模板ID
/// Author:Conanlwl
/// http://www.conanlwl.net
/// </summary>
public class BbsPic : System.Web.UI.Page
...{
private XmlDocument myDoc = new XmlDocument();
priva
4000
te void Page_Load(object sender, System.EventArgs e)
...{
// 在此处放置用户代码以初始化页面
string str=Request.QueryString["t"];
int style=Convert.ToInt32(Request.QueryString["style"]);
if(style<1)style=1;
DrawPic(str,style);
}
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
...{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/**//// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
...{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void DrawPic(string str,int style)
...{
try
...{
myDoc.Load(Server.MapPath("ImageInfo.xml"));
XmlNode xn = myDoc.SelectSingleNode("//Image[ID='" + style + "']");
XmlNodeList xnl = xn.ChildNodes;
if(str==null || str=="")str=xnl.Item(6).InnerText;
System.Drawing.Image image=System.Drawing.Image.FromFile(Server.MapPath(xnl.Item(1).InnerText));
Graphics g= Graphics.FromImage(image);;
Font font = new System.Drawing.Font(FontFamily.GenericSansSerif,20);
SolidBrush brush=new SolidBrush(Color.Black);
g.DrawString(str,font,brush,new Rectangle(int.Parse(xnl.Item(2).InnerText),int.Parse(xnl.Item(3).InnerText),int.Parse(xnl.Item(4).InnerText),int.Parse(xnl.Item(5).InnerText)));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
Response.ClearContent();
Response.ContentType = "image/Png";
Response.BinaryWrite(ms.ToArray());
image.Dispose();
g.Dispose();
}
catch(Exception ex)
...{
Response.Write(ex.Message);
Response.End();
}
}
}
}
以下是相应的XML文件ImageInfo.XML
<?xml version="1.0" encoding="GB2312" ?>
<ImageInfo>
<Image>
<ID>1</ID>
<URL>images/pic.jpg</URL>
<x>200</x>
<y>20</y>
<width>280</width>
<height>160</height>
<DefaultText><![CDATA[图片地址的格式为:http://www.conanlwl.net/bbspic/bbspic.aspx?stype=样式的数字&t=你要发表的文字]]></DefaultText>
</Image>
<Image>
<ID>2</ID>
<URL>images/pic01.jpg</URL>
<x>10</x>
<y>28</y>
<width>235</width>
<height>180</height>
<DefaultText><![CDATA[图片地址的格式为:http://www.conanlwl.net/bbspic/bbspic.aspx?stype=样式的数字&t=你要发表的文字]]></DefaultText>
</Image>
</ImageInfo>
每一个<Image>标签都是一张图片的模板信息.
ID为模板本身ID,也即地址栏中style所对应的参数.
URL模板图片的相对地址
x,y,width,height分别为图片模板中要显示文件的区域的矩形的左上角坐标x,y以及矩形的宽与高width,height,这四个值可以用PS或其它绘图软件从图片中获取
DefaultText为地址栏不传入t参数时的默认文本
相关文章推荐
- 简单的在图片上加上文字的效果
- 自定义ImageSpan实现简单的文字图片背景效果
- ListView添加图片和文字效果之SimpleAdapter简单实例
- 简单的图片、文字滚动效果
- 简单文字图片水印效果 - C#WinForm
- Tablayout的简单使用-单文字+图片文字展示效果
- 简单设置图片文字并排效果
- 如何在上传的图片上加上版权文字
- Asp.net(C#)给图片加上水印效果
- jquery 单行滚动、批量多行滚动、文字图片翻屏滚动效果代码
- JQ简单图片经过效果--答一伙计
- 图像处理之简单数字水印 - 文字轧花效果
- RadioButton布局图片+文字 实现tabhost效果
- android图片轮播效果,RollViewPager的简单使用
- android中简单的图片翻页效果
- php GD库的简单封装,图片压缩、文字水印、图片水印等方法
- php使用Imagick给图片写文字加阴影效果
- 图片切圆,label文字底部加一条线,自定义view的透明度渐变效果
- 一个案例教你简单地玩转ViewPager(三)之带指示点的图片自动轮播效果
- jquery 单行滚动、批量多行滚动、文字图片翻屏滚动效果代码