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;
}
}
}

时间: 2024-08-09 06:19:15

c#winform图片绘制和图片验证码的相关文章

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 :

添加资源图片,获取图片实例并绘制到窗体

项目右键属性——资源——添加资源展开——添加现有文件 paint方法中: private void Form1_Paint(object sender, PaintEventArgs e) { using (Graphics g = e.Graphics) { g.DrawImage((Image)zhbImgConvert.Properties.Resources.ResourceManager.GetObject("_001"), 10, 70); } } 添加资源图片,获取图片实

quartz2D 如何绘制圆形图片, 及圆环图片

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://e.hiphotos.baidu.com/lvpics/w=600/sign=eeeff27ca10f4bfb8cd09d54334d788f/267f9e2f0708283873d

用struts2做一个带有图片效果的登陆验证码

我们在登陆网站的时候总是会有带有图片验证功能的验证码,它是怎么做出来的了,今天我就详细的将每一步步骤写出来. 1.在action层 1 package cn.itcast.javaee.js.checkcode; 2 3 import java.io.PrintWriter; 4 import javax.servlet.http.HttpServletResponse; 5 import org.apache.struts2.ServletActionContext; 6 import com

android开发步步为营之58:给图片绘制圆形气泡背景效果

最近在开发项目的时候,有一个需求,需要给应用图标绘制圆形气泡背景,有了彩色气泡这样显得漂亮一点,气泡的颜色是应用图标的颜色均值,先看看效果,然后,我再给出demo. demo应用图标是这样的: 添加气泡背景后是这样的: 仔细看圆形背景颜色是图标颜色的均值. 好的,下面我们来完成这个demo. 第一步.编写页面activity_drawcycle.xml <?xml version="1.0" encoding="utf-8"?> <LinearLa

使用MFC CImage类和GDI+ Image加载并绘制PNG图片

一.使用MFC CImage类加载PNG图片        为了测试CImage绘制PNG图片的效果,我们用截图软件截得一张360的界面,然后使用PhotoShop等工具在图片的周边加上了透明的区域,然后保存成PNG图片文件.CImage首先从文件中加载,即 CImage* m_pImgBk; ...... m_pImgBk = new CImage; m_pImgBk->Load( _T("res\\bk.png")); if ( m_pImgBk->IsNull() )

图片加水印 图片验证码

图片加水印 1   获取这张图片 System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent); 2 给图片加水印 Graphics g = Graphics.FromImage(img); string s = "WWW.ITNBA.COM";         s 给图片加的水印文字 Font f = new Font("微软雅黑", 30); Brush b

(转)winform pictureBox后台显示图片

本文转载自:http://blog.csdn.net/meizhiyun/article/details/8639002 1.获取本地程序图片 方法一 pictureBox1.BackgroundImage = Image.FromFile(@"Resources\bg.gif"); 或是 pictureBox1.BackgroundImage = new System.Drawing.Bitmap(@"Resources\bg.gif"); 注意:Resource

[WinForm][DevExpress]设置TreeList图片节点背景色

关键代码: /// <summary> /// 设置图片节点的背景色 /// 说明:在CustomDrawNodeImages事件中使用 /// </summary> /// <param name="tree">TreeList</param> /// <param name="e">CustomDrawNodeImagesEventArgs</param> /// <param nam