一个可设置背景图片的验证码图片的生成方法

参数说明:

sourceFile:背景图片文件

text:要显示的文本

public void MakeCheckImage(string sourceFile,string text)
  {
   Response.Clear();
   try
   {
    //原图
    Bitmap sImage = new Bitmap(sourceFile);    
   
    //验证码图
    Bitmap wImage = new Bitmap(100,30,System.Drawing.Imaging.PixelFormat.Format24bppRgb);    
    Graphics wg = Graphics.FromImage(wImage);
    wg.Clear(Color.White);
    wg.DrawString(text,new Font("Verdana",18),new SolidBrush(Color.Black),0,0);
    wg.Save();
    
    //make Graphics.
    Graphics g = Graphics.FromImage(sImage);
    int x; //临时变量
    int y; //监时变量    
    int w = 100; //验证图的宽度
    int h = 30; //验证图的高度
    int al; //alpha
    int rl; //Red
    int gl; //Green
    int bl; //Blue
    
    //开始绘图
    for(x = 1; x < w; x++)
    {
     for(y = 1; y < h; y++)
     {
      al = wImage.GetPixel(x,y).A;
      rl = wImage.GetPixel(x,y).R;
      gl = wImage.GetPixel(x,y).G;
      bl = wImage.GetPixel(x,y).B;
      al = 70;
     
      if(rl - 50 > 0)
       rl -= 50;
      if(gl - 50 > 0)
       gl -= 50;
      if(bl - 50 > 0)
       bl -= 50;
      g.DrawEllipse(new Pen(new SolidBrush(Color.FromArgb(al,rl,gl,bl))),x,y,1,1);           
     }
    }  
    g.Save();
    sImage.Save(Response.OutputStream,ImageFormat.Jpeg);    
    wg.Dispose();
    g.Dispose();
    sImage.Dispose();
    wImage.Dispose();    
   }
   catch(Exception e)
   {
    Response.Write(e.Message);
   } 
   Response.End();
  }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值