.net生成图片验证码

/************************************************************************/
/* 类名:无
* 功能:生成验证码图片
* 完成时间:2009-8-11
* 版本号:1.0
* 修改时间:
* 作者:eping
* E-Mail:[email protected]
/************************************************************************/
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using System.Drawing;  //添加引用

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //调用自定义方法绘制验证码
        CreateCheckCodeImage(GenerateCheckCode());
    }

private string GenerateCheckCode()
    {
        //创建整型型变量
        int number;
        //创建字符型变量
        char code;
        //创建字符串变量并初始化为空
        string checkCode = String.Empty;
        //创建Random对象
        Random random = new Random();
        //使用For循环生成4个数字
        for (int i = 0; i < 4; i++)
        {
            //生成一个随机数
            number = random.Next();
            //将数字转换成为字符型
           code = (char)(‘0‘ + (char)(number % 10));

checkCode += code.ToString();
        }
        //将生成的随机数添加到Cookies中
        Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));
        //返回字符串
        return checkCode;
    }

private void CreateCheckCodeImage(string checkCode)
    {
        //判断字符串不等于空和null
        if (checkCode == null || checkCode.Trim() == String.Empty)
            return;
       //创建一个位图对象
        System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
        //创建Graphics对象
        Graphics g = Graphics.FromImage(image);

try
        {
            //生成随机生成器
            Random random = new Random();

//清空图片背景色
            g.Clear(Color.White);

//画图片的背景噪音线
            for (int i = 0; i < 2; i++)
            {
                int x1 = random.Next(image.Width);
                int x2 = random.Next(image.Width);
                int y1 = random.Next(image.Height);
                int y2 = random.Next(image.Height);

g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2);
            }

Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold));
           
System.Drawing.Drawing2D.LinearGradientBrush brush = new
System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0,
image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
            g.DrawString(checkCode, font, brush, 2, 2);

//画图片的前景噪音点
            for (int i = 0; i < 100; i++)
            {
                int x = random.Next(image.Width);
                int y = random.Next(image.Height);

image.SetPixel(x, y, Color.FromArgb(random.Next()));
            }

//画图片的边框线
            g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);

//将图片输出到页面上
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
            Response.ClearContent();
            Response.ContentType = "image/Gif";
            Response.BinaryWrite(ms.ToArray());
        }
        finally
        {
            g.Dispose();
            image.Dispose();
        }
    }
}

.net生成图片验证码

时间: 2024-08-28 18:35:25

.net生成图片验证码的相关文章

PHP GD 生成图片验证码+session获取储存验证码

下面分享一个PHP制作的图片验证码案例:案例如下图: 运用PHP GD详细请看:http://www.php.net/manual/zh/book.image.php 后台图片代码如下: <?php session_start(); $image = imagecreatetruecolor(100,30);//创建一个宽100,高度30的图片 $bgcolor=imagecolorallocate($image,255,255,255);//图片背景是白色 imagefill($image,0

PHP生成图片验证码demo【OOP面向对象版本】

下面是我今天下午用PHP写的一个生成图片验证码demo,仅供参考. 这个demo总共分为4个文件,具体代码如下: 1.code.html中的代码: 1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="utf-8" /> 5 <title>登录.注册验证码生成</title> 6 </head> 7 <bo

Android 自定义View之随机生成图片验证码

本篇文章讲的是Android自定义View之随机生成图片验证码,开发中我们会经常需要随机生成图片验证码,但是这个是其次,主要还是想总结一些自定义View的开发过程以及一些需要注意的地方. 按照惯例先看看效果图: 一.先总结下自定义View的步骤: 1.自定义View的属性 2.在View的构造方法中获得我们自定义的属性 3.重写onMesure 4.重写onDraw 其中onMesure方法不一定要重写,但大部分情况下还是需要重写的 二.View 的几个构造函数 1.public CustomV

servletResponse 随机生成图片验证码

/***********************************servlet页面************************************/ package response; import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.IOE

PHP生成图片验证码、点击切换实例

这篇文章主要介绍了PHP生成图片验证码实例,同时介绍了点击切换(看不清?换一张)效果实现方法,需要的朋友可以参考下 这里来看下效果:  现在让我们来看下 PHP 代码 <?php session_start(); function random($len) { $srcstr = "1a2s3d4f5g6hj8k9qwertyupzxcvbnm"; mt_srand(); $strs = ""; for ($i = 0; $i < $len; $i++)

net生成图片验证码--转自Lisliefor

目前,机器识别验证码已经相当强大了,比较常见的避免被机器识别的方法,就是将验证码的字符串连到一起,这样就加大的识别的难度,毕竟机器没有人工智能.我找了很多的.net生成图片验证码的例子,后来经过一些修改和整理,差不多满足了我的要求:图片有噪音点,每个字符的字体随机,颜色随机,字符部分重叠. 那么如何实现呢? 1. 首先,验证码图片标签<img>链接到生成图片的aspx页面,如: [c-sharp] view plaincopyprint? <img src="Identifyi

Java代码生成图片验证码实现

介绍一个使用Java代码生成随机图片验证码的示例 Java代码随机生成图片验证码 package com.rchm.util.images; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.FileOutputStream; import java.io.IOException; import j

js依赖mui.css生成图片验证码

js依赖mui.css生成图片验证码 相关css和js引入路径 https://cdnjs.cloudflare.com/ajax/libs/mui/3.7.1/css/mui.css https://cdnjs.cloudflare.com/ajax/libs/mui/3.7.1/css/mui.min.css https://cdnjs.cloudflare.com/ajax/libs/mui/3.7.1/fonts/mui.ttf https://cdnjs.cloudflare.com/

Java生成图片验证码1

VerifyCodeUtils类(main方法可直接执行): package hh.com.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.LinearGradientPaint; import java.awt.Paint; import java.awt.RenderingHints; import