C# GDI+、验证码

GDI+

GDI+(Graphics Device Interface)是一种绘图装置接口,可将应用和绘图硬件分隔,让我们能够写与装置无关的应用程序。属于绘图方面的API,因为应用程序不能直接控制硬件,所以当我们要进行绘图的动作时,必须通过GDI完成。

Graphics类常用的画图方法

  • DrawLine():画线–两个Point
  • DrawLines():画线段–Point数组
  • DrawString():画文本
  • DrawRectangle():画矩形
  • FillRectangle():填充矩形
  • DrawEllipse():画椭圆
  • DrawCurve():画曲线
  • DrawArc():画弧线
  • DrawPie():画扇形
  • DrawPolygon():画封闭多边形
  • DrawBezier():画贝兹曲线

主要属性

  • Bottom:矩形底部的纵坐标
  • Top:矩形顶部纵坐标
  • Left:矩形左部横坐标
  • Right:矩形右部横坐标
  • Height:矩形高度
  • WIdth:矩形宽度
  • Size:矩形尺寸
  • IsEmpty:矩形是否为空(高度和宽度是否都为0)
  • X:矩形左上角横坐标
  • Y:矩形左上角纵坐标

练习:验证码

private void pictureBox1_Click(object sender, EventArgs e)
{
    //随机生成五个数
    string str = "";

    Random r = new Random();
    for (int i = 1; i <= 5; i++)
    {
        int num = r.Next(0, 10);
        str += num;

    }

    //创建位图用来存验证码
    Bitmap bm = new Bitmap(200, 103);
    //创建对象
    Graphics g = Graphics.FromImage(bm);

    //五种字体、五种颜色
    string[] fontName = new string[] { "方正舒体", "新宋体", "华文行楷", "黑体", "幼圆" };
    Color[] color = new Color[] { Color.Red, Color.Gray, Color.Green, Color.Pink, Color.Black };

    for (int i = 0; i <5; i++)
    {
        Point point = new Point(i * 20, 0);//每个数字的坐标
        g.DrawString(str[i].ToString(), new Font(fontName[i], 20), new SolidBrush(color[i]), point);
    }

    //随机画线
    for (int i = 0; i < 51; i++)
    {
        Point p_1 = new Point(r.Next(bm.Width), r.Next(bm.Height));

        Point p_2 = new Point(r.Next(bm.Width), r.Next(bm.Height));

        g.DrawLine(new Pen(Brushes.Gray), p_1, p_2);
    }

    //添加噪点
    for (int i = 0; i < 1500; i++)
    {
        Point p_1 = new Point(r.Next(bm.Width), r.Next(bm.Height));
        bm.SetPixel(p_1.X, p_1.Y, Color.Red);
    }
    pictureBox1.Image = bm;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值