使用GDI绘制验证码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 使用GDI绘制验证码B
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 点击更换验证码
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            Random r = new Random();
            string str = null;//随机数字符串
            for (int i = 0; i < 5; i++)
            {
                int rNumber = r.Next(0, 10);
                str += rNumber;
            }

            //创建GDI对象
            Bitmap bmp = new Bitmap(150,40);
            Graphics g = Graphics.FromImage(bmp);

            for (int i = 0; i < 5; i++)
            {
                Point p = new Point(i*20,0); //每个数字横坐标要有间隔
                string[] fonts = {"微软雅黑","宋体","黑体","仿宋","新宋体"};
                Color[] colors = {Color.Black,Color.Blue,Color.Pink,Color.Red,Color.Yellow};
                g.DrawString(str[i].ToString(),new Font(fonts[r.Next(0,5)],20,FontStyle.Bold),new SolidBrush(colors[r.Next(0,5)]),p);
            }

            for (int i = 0; i < 20; i++)
            {
                Point p1 = new Point(r.Next(0,bmp.Width),r.Next(0,bmp.Height));
                Point p2 = new Point(r.Next(0,bmp.Width),r.Next(0,bmp.Height));
                g.DrawLine(new Pen(Brushes.Green),p1,p2);
            }

            for (int i = 0; i < 500; i++)
            {
                Point p = new Point(r.Next(0,bmp.Width),r.Next(0,bmp.Height));
                bmp.SetPixel(p.X, p.Y, Color.Black);
            }

            //将图片镶嵌到PictureBox中
            pictureBox1.Image = bmp;
        }
    }
}
时间: 2024-10-13 10:28:26

使用GDI绘制验证码的相关文章

通过GDI+绘制 验证码

只为了记录下自己的学习历程,方便日后查看 现在开始言归正传,以下为其完整代码附上 GDI+绘制验证码 以下为运行结果图

C# GDI绘制验证码

步骤: 1.通过Random生成随机数或字符及验证码 2.通过验证码内容长度生成指定大小的图片 3.获取生成图片的Graphics对象 4.定义验证码字体格式 5.通过指定字体将验证码绘制到图片 6.向图片上添加背景噪音线 7.添加前景噪音点 1 private void pictureBox1_Click(object sender, EventArgs e) 2 { 3 Random r = new Random(); 4 string str = null; 5 for (int i =

Winform之GDI绘制验证码

主要功能:点击验证码可更换,输入验证码进行登陆 需要导入命名空间System.Drawing; 产生五位的随机字符串: 1 Random random = new Random(); 2 //产生5个随机字符串 3 str = null; 4 for (int i = 0; i < 5; i++) 5 { 6 int j = random.Next(64, 90); 7 str = str + (char)j; 8 } 画字符串 1 //创建图片 2 Bitmap bmp = new Bitma

.Net学习笔记----2015-07-10(使用GDI绘制验证码)

/// <summary> /// 点击更换验证码 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void pictureBox1_Click(object sender, EventArgs e) { Random r = new Random(); string st

【5】GDI+ 生成验证码

这里我们做一个小应用,就是绘制一个如下图所示的验证码图片.并且点击验证码的时候会自动切换. 实现思路如下: 通过Random生成随机数或字符及验证码 通过验证码内容长度生成指定大小的图片 获取生成图片的Graphics对象 定义验证码字体格式 通过指定字体将验证码绘制到图片 向图片上添加背景噪音线 添加前景噪音点 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using S

GDI+在绘制验证码中的使用

GDI+最简单的理解就是用来绘图的.其中包括点.直线.矩形.字符串等等. 先简单来个例子,说明如何在winform窗体中绘制一条直线,并且这条直线不随着窗体的移动而消失. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Sy

C#利用GDI+绘制旋转文字等效果实例

本文实例讲述了C#利用GDI+绘制旋转文字等效果的方法,是非常实用的技巧.分享给大家供大家参考之用.具体如下: C#中利用GDI+绘制旋转文本的文字,网上有很多资料,基本都使用矩阵旋转的方式实现.但基本都只提及按点旋转,若要实现在矩形范围内旋转文本,资料较少.经过琢磨,可以将矩形内旋转转化为按点旋转,不过需要经过不少的计算过程.利用下面的类可以实现该功能. 具体实现代码如下: using System; using System.Collections.Generic; using System

新手们的GDI+绘制方格

//绘制panel控件触发的事件 //不可在窗体加载时绘制方格        private void panel1_Paint(object sender, PaintEventArgs e)        {            int rowNum = 12;//行数            int colNum = 15;//列数:            Pen pen = new Pen(Color.Black);//实例化一个"画笔"            Brush br

D2D引擎与GDI\GDI+绘制效果对比

本例主要是对比D2D和GDI在绘制文字.线条的区别,以及D2D与GDI+在绘制图片时的区别. D2D是基于COM组件开发的,使用前的CoInitialize(NULL)是必须的:另外,GDI+的初始化GdiplusStartup()也别忘了. 废话少说,完整代码如下: // D2DDemo.cpp : 定义应用程序的入口点. // #include "stdafx.h" #include "D2DDemo.h" #include <D2D1.h> #in