c# 使用GDI绘制验证码实例

原创 2016年08月31日 09:11:00
namespace 使用GDI绘制验证码
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {

           // Random r = new Random();
           // string str = r.Next(0, 100000).ToString("D5");
            
           // //MessageBox.Show(str);

           // Bitmap bmp = new Bitmap(120, 30);
           // Graphics g = Graphics.FromImage(bmp);
           //// Graphics g = this.pictureBox1.CreateGraphics();
           //// Pen pen = new Pen(Brushes.Red);
           //// g.Clear(System.Drawing.Color.White);
           // g.DrawString(str, new Font("宋体", 35), Brushes.Blue, new Point(0, 0));




            Random r = new Random();
            string str = null;
            for (int i = 0; i < 5; i++)
            {
                int number = r.Next(0, 10);
                str += number;
            }

            Bitmap bmp = new Bitmap(120, 50);
            Graphics g = Graphics.FromImage(bmp);

            pictureBox1.Image = bmp;

            for (int i = 0; i < 5; i++)
            {
                string[] fonts = { "微软雅黑", "宋体", "Arial", "新宋体", "隶书", "书体坊赵九江钢笔行书", "方正魏碑简体", "迷你繁方篆", "迷你简北魏楷书", "迷你简瘦金书", "迷你简特粗圆", "迷你简中楷" };
                Color[] colors = {Color.Yellow,Color.Red,Color.Blue,Color.LightGreen };
                g.DrawString(str[i].ToString(),new Font(fonts[r.Next(0,12)], 25, FontStyle.Bold), new SolidBrush(colors[r.Next(0,4)]), new Point(i*20,r.Next(0,10)));
            }

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

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

利用GDI+绘制验证码

.Net中封装了一个GDI+绘图画面在Graphics类中,该类是个密封类,不能被继承。我们可以利用该类中的各种方法来进行绘图,现在来用GDI+绘制验证码.       正如这张图片所示: 我们要...
  • fulei1107655988
  • fulei1107655988
  • 2014年08月15日 21:59
  • 783

C#中使用GDI+绘制一把漂亮的直尺(带透明度)

这是三年前研究C#与GDI+时的作品,它使用C#与GDI+绘制一把有透明度、带刻度 (以像素为单位)的直尺。最终效果:横向直尺:(注:设置了80%不透明度)竖向直尺:(注:设置了100%不透明度,即完...
  • johnsuna
  • johnsuna
  • 2008年04月20日 16:24
  • 7634

使用GDI绘制验证码

看着教学视频,用C#GDI做了一个验证码
  • lzx_longyou
  • lzx_longyou
  • 2015年04月22日 23:26
  • 1490

C#使用GDI+绘制直角坐标系

C#窗口中的坐标系是如下图所示,原点在窗口左上角,X轴方向是自左向右,Y轴方向是自上向下。 如果想在C#窗口中绘制正常的直角坐标系,例如入下图所示的第一象限的坐标系图形,就需要做专门的处理了。 本文介...
  • gc_2299
  • gc_2299
  • 2017年11月12日 20:03
  • 143

C# GDI+ 画简单的图形:直线、矩形、扇形等

GDI+是一种绘图装置接口,  当拖动窗体是,窗体发生移动,window默认为从窗体移动到另一个地方,先发生擦除后再重新画一个窗体; 而我们自己动手画的图(如下面的线),不会重新画;在属性中,Pain...
  • yanhuatangtang
  • yanhuatangtang
  • 2017年05月30日 00:44
  • 1406

.NET : 如何利用GDI+绘制折线图

这是今天课堂上讲的一个范例小程序。 其实很多图表控件大多也是这样画出来的。 //如何从零开始构造一个图片 Bitmap b = n...
  • chen_xizhang
  • chen_xizhang
  • 2009年12月16日 12:15
  • 1801

[C#]桌面模式下GDI绘制(全透明背景)

有时候我们需要这样的需求:在桌面模式下当画板用,在上面写写画画,添加一些批注等。 很自然我们会想到用GDI绘制,可是用GDI,免不了要有一块“板”绘制,也就是免不了窗体,既然要在桌面模式下,那现在的...
  • luols
  • luols
  • 2014年04月16日 17:25
  • 7280

C#利用GDI绘制验证码

代码片:using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...
  • afzhu2014
  • afzhu2014
  • 2015年04月10日 15:22
  • 251

C#使用GDI绘制格尺

使用C#绘制一个标尺,其实是在学习Gdi绘图的一些知识,也在试验出好多人平时总问的一个问题,一个毫米等于多少像素,同时自己也了解了在图形中尺寸是怎么计算的。 1.尺寸的确定 在使用标尺测试...
  • xuchao4177
  • xuchao4177
  • 2013年01月13日 02:22
  • 1360

利用GDI+绘制任意边数的多边形窗体

最近用C#的GDI编程做了几个小游戏,大概知道了这些2D小游戏的基本开发方法.以后我可能不会再蠢到在一个窗体上拖或者是用代码动态生成几十个picturebox控件来制作游戏了,233333...(当然...
  • stdkiruen
  • stdkiruen
  • 2016年09月29日 20:15
  • 925
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c# 使用GDI绘制验证码实例
举报原因:
原因补充:

(最多只允许输入30个字)