zoukankan      html  css  js  c++  java
  • c#winform图片绘制与图片验证码

    using System;  
    using System.Collections.Generic;  
    using System.ComponentModel;  
    using System.Data;  
    using System.Drawing;  
    using System.Linq;  
    using System.Text;  
    using System.Windows.Forms;  
      
    namespace WindowsFormsApplication1  
    {  
        public partial class Form1 : Form  
        {  
            public Form1()  
            {  
                InitializeComponent();  
            }  
      
            private void Form1_Load(object sender, EventArgs e)  
            {  
                //一张纸 一根笔 一个人 两个点  
      
            }  
            //画直线  
            private void Form1_Paint(object sender, PaintEventArgs e)  
            {  
                Graphics gp = this.CreateGraphics();  
                Pen p = new Pen(Color.Blue);  
                Point p1 = new Point(100, 100);  
                Point p2 = new Point(100, 300);  
                gp.DrawLine(p, p1, p2);  
            }  
      
            //画多线直线  
            private void button1_Click(object sender, EventArgs e)  
            {  
                //创建一个GDI+ 对象  
                Graphics g = this.CreateGraphics();  
                //创建画笔对象  
                Pen pen = new Pen(Color.Blue);  
                //创建两个点  
                Point p1 = new Point(100, 100);  
                Point p2 = new Point(30, 400);  
                //在画板中用pen在p1和p2两个点之间画一条直线  
                g.DrawLine(pen, p1, p2);  
                //pos为point数组,在画板中画多条直线  
                Point p3 = new Point(300, 120);  
                Point p4 = new Point(15, 200);  
                Point[] pos = { p1, p2, p3, p4 };  
                g.DrawLines(pen, pos);  
            }  
      
            //画矩形  
            private void button2_Click(object sender, EventArgs e)  
            {  
                //创建GDI+对象  
                Graphics gp = this.CreateGraphics();  
                //创建矩形对象                左上角度座标                 宽   高  
                Rectangle rec = new Rectangle(new Point(100, 10), new Size(100, 300));  
                gp.DrawRectangle(new Pen(Color.Blue), rec);  
            }  
      
            //填充矩形  
            private void button3_Click(object sender, EventArgs e)  
            {  
                //创建GDI+对象  
                Graphics gp = this.CreateGraphics();  
                //给定要填充的矩形对象  
                Rectangle rec = new Rectangle(new Point(100, 10), new Size(100, 300));  
                //填充颜色       获取系统颜色     给定要填充的矩形  
                gp.FillRectangle(Brushes.DarkGreen, rec);  
            }  
      
            //画扇形,并填充  
            private void button4_Click(object sender, EventArgs e)  
            {  
                //创建GDI+对象  
                Graphics gp = this.CreateGraphics();  
                //给定要填充的矩形对象  
                Rectangle rec = new Rectangle(new Point(100, 10), new Size(100, 300));  
                //绘制扇形 pen对象             矩形 右角 左角度  
                gp.DrawPie(new Pen(Color.Red), rec, 60, 60);  
                //填充扇形 获取系统对象       矩形 右角 左角度  
                gp.FillPie(Brushes.DarkGreen, rec, 60, 60);  
            }  
      
            //画文字  
            private void button5_Click(object sender, EventArgs e)  
            {  
                //创建GDI+对象  
                Graphics g = this.CreateGraphics();  
                //绘制文本   文本         字体样式: 字体    字号 样式粗?斜?...  获取系统颜色       绘制到的座标点  
                g.DrawString("中国您好!", new Font("华文行楷", 20, FontStyle.Italic), Brushes.Red, new Point(300, 300));  
            }  
      
            //验证码  
            private void pictureBox1_Click(object sender, EventArgs e)  
            {  
                //生成1到9之间的4个随机数  
                Random r = new Random();  
                string str = "";  
                for (int i = 0; i < 4; i++)  
                {  
                    int rNumber = r.Next(0, 10);  
                    //累加到空字符串中  
                    str += rNumber;  
                }  
      
                //创建GDI+对象  
                //创建图片对象, 指定 宽 和 高  
                Bitmap bm = new Bitmap(115,30);;  
                //从指定的Image对象创建新的Grapics画板  
                Graphics g = Graphics.FromImage(bm);  
      
                //数组存放字体  
                string[] fonts = {"黑体","微软雅黑","隶书","楷体"};  
                //数组存放颜色  
                Color[] colors = {Color.Red,Color.Yellow,Color.Pink,Color.Purple};  
                //画字  
                for (int i = 0; i < 4; i++)  
                {  
                    //指定座标  
                    Point p = new Point(i*20,0);  
                    //画文字  
                    g.DrawString(str[i].ToString(), new Font(fonts[i], 20, FontStyle.Italic), new SolidBrush(colors[i]),p);  
      
                }  
                //画线  
                for (int j = 0; j < 16; j++)  
                {   
                    Point p1 = new Point(r.Next(0,bm.Width),r.Next(bm.Height));  
                    Point p2 = new Point(r.Next(0,bm.Width),r.Next(0,bm.Height));  
                    g.DrawLine(new Pen(Color.Green), p1, p2);  
                }  
                //画像素点  
                for (int i = 0; i < 100; i++)  
                {  
                    Point p1 = new Point(r.Next(0,bm.Width),r.Next(bm.Height));  
                    Point p2 = new Point(r.Next(0,bm.Width),r.Next(0,bm.Height));  
                    bm.SetPixel(p1.X, p1.Y, Color.Black);  
                }  
      
                //将bm这个图片直接镶嵌到pictureBox上  
                pictureBox1.Image = bm;  
            }  
        }  
    }  
  • 相关阅读:
    ctf web 百度杯”CTF比赛 九月场Upload i春秋
    ctf web 西普实验吧 登陆一下好吗 MySQL隐式转化 MySQL表达式的计算顺序
    Firefox 47.0.1
    给数组原型添加方法
    JS中几种常见的数组算法(前端面试必看)
    进制转换技巧解析
    redis通过6379端口无法连接服务器
    阿里云图片或文件上传 启动时报Error creating bean with name 'ossClient'问题
    20170628-三七互娱-测试工程师(提前批)
    20170514-vivo-软件工程师Java(提前批)
  • 原文地址:https://www.cnblogs.com/H2921306656/p/6651826.html
Copyright © 2011-2022 走看看