写验证码

第一种:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using System.IO;
using System.Text;

namespace 验证码
{
    public partial class pic : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            System.Drawing.Image img = new Bitmap(200, 60);  //有了一张图片
            Graphics g = Graphics.FromImage(img);   //有了往图片上画的图像
            this.AddPoint(img, 100);
            string code = this.GeneralCode();
            Font font1=new Font("宋体",40,FontStyle.Italic);
            g.DrawString(code, font1, Brushes.Red, 0, 0);
            this.Response.Clear();
            MemoryStream ms = new MemoryStream();   //存放输出的东西
            img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
            this.Response.BinaryWrite(ms.ToArray());
            this.Response.Flush();
            this.Response.End();

        }

        //加噪点背景的
        private void AddPoint(System.Drawing.Image img, int nums)
        {
            Bitmap b = img as Bitmap;
            Random ran = new Random();
            for (int i = 0; i < nums; i++)
            {
                b.SetPixel(ran.Next(0, img.Width), ran.Next(0,img.Height), Color.White);
            }
        }

        //生成随机的文字
        private string GeneralCode()
        {
            Random ran = new Random(DateTime.Now.Millisecond);
            StringBuilder sb = new StringBuilder(6);
            for (int i = 0; i < 6; i++)
            {
                sb.Append(ran.Next(0, 9));
            }
            return sb.ToString();
        }

    }
}

第二种:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace 验证码
{
    /// <summary>
    /// HandlerPic 的摘要说明
    /// </summary>
    public class HandlerPic : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "images/1234.jpg";
            //string path = context.Server.MapPath("/images/无标题.png");
            using (System.Drawing.Bitmap bitmip = new System.Drawing.Bitmap(200, 50))
            {
                //创建一个图片的画布
                using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmip))
                {
                    Random rand = new Random();
                    int code = rand.Next();
                    string strCode = code.ToString();
                    context.Session["Code"] = strCode;
                    g.DrawString(strCode, new System.Drawing.Font("宋体", 20), System
                    .Drawing.Brushes.Red, new System.Drawing.PointF(0, 0));
                    bitmip.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
                }
            }
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值