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;  
        }  
    }  
}  
相關文章
相關標籤/搜索