简单的在图片上加上文字的效果

先看看效果先

在地址栏输入后面的网址看看: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();
    
private 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 窗体设计器生成的代码
    
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参数时的默认文本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值