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(, );
Point p2 = new Point(, );
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(, );
Point p2 = new Point(, );
//在画板中用pen在p1和p2两个点之间画一条直线
g.DrawLine(pen, p1, p2);
//pos为point数组,在画板中画多条直线
Point p3 = new Point(, );
Point p4 = new Point(, );
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(, ), new Size(, ));
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(, ), new Size(, ));
//填充颜色 获取系统颜色 给定要填充的矩形
gp.FillRectangle(Brushes.DarkGreen, rec);
} //画扇形,并填充
private void button4_Click(object sender, EventArgs e)
{
//创建GDI+对象
Graphics gp = this.CreateGraphics();
//给定要填充的矩形对象
Rectangle rec = new Rectangle(new Point(, ), new Size(, ));
//绘制扇形 pen对象 矩形 右角 左角度
gp.DrawPie(new Pen(Color.Red), rec, , );
//填充扇形 获取系统对象 矩形 右角 左角度
gp.FillPie(Brushes.DarkGreen, rec, , );
} //画文字
private void button5_Click(object sender, EventArgs e)
{
//创建GDI+对象
Graphics g = this.CreateGraphics();
//绘制文本 文本 字体样式: 字体 字号 样式粗?斜?... 获取系统颜色 绘制到的座标点
g.DrawString("中国您好!", new Font("华文行楷", , FontStyle.Italic), Brushes.Red, new Point(, ));
} //验证码
private void pictureBox1_Click(object sender, EventArgs e)
{
//生成1到9之间的4个随机数
Random r = new Random();
string str = "";
for (int i = ; i < ; i++)
{
int rNumber = r.Next(, );
//累加到空字符串中
str += rNumber;
} //创建GDI+对象
//创建图片对象, 指定 宽 和 高
Bitmap bm = new Bitmap(,);;
//从指定的Image对象创建新的Grapics画板
Graphics g = Graphics.FromImage(bm); //数组存放字体
string[] fonts = {"黑体","微软雅黑","隶书","楷体"};
//数组存放颜色
Color[] colors = {Color.Red,Color.Yellow,Color.Pink,Color.Purple};
//画字
for (int i = ; i < ; i++)
{
//指定座标
Point p = new Point(i*,);
//画文字
g.DrawString(str[i].ToString(), new Font(fonts[i], , FontStyle.Italic), new SolidBrush(colors[i]),p); }
//画线
for (int j = ; j < ; j++)
{
Point p1 = new Point(r.Next(,bm.Width),r.Next(bm.Height));
Point p2 = new Point(r.Next(,bm.Width),r.Next(,bm.Height));
g.DrawLine(new Pen(Color.Green), p1, p2);
}
//画像素点
for (int i = ; i < ; i++)
{
Point p1 = new Point(r.Next(,bm.Width),r.Next(bm.Height));
Point p2 = new Point(r.Next(,bm.Width),r.Next(,bm.Height));
bm.SetPixel(p1.X, p1.Y, Color.Black);
} //将bm这个图片直接镶嵌到pictureBox上
pictureBox1.Image = bm;
}
}
}
c#winform图片绘制与图片验证码的更多相关文章
- android绘制圆形图片的两种方式
看下效果先 下面有完整的示例代码 使用BitmapShader(着色器) 我们在绘制view 的时候 就是小学上美术课 用水彩笔在本子上画画 使用着色器绘制圆形图片最简单的理解方式 就是把bitmap ...
- GDI+ 如何将图片绘制成圆形的图片
大概意思就是不生成新的图片,而是将图片转换为圆形图片. 实现代码如下: private Image CutEllipse(Image img, Rectangle rec, Size size) { ...
- 使用MFC CImage类绘制PNG图片时遇到的问题
为了测试CImage绘制PNG图片的效果,我们用截图软件截得一张360的界面,然后使用PhotoShop等工具在图片的周边加上了透明的区域,然后保存成PNG图片文件.CImage首先从文件中加载,即 ...
- ImageDrawer.js图片绘制插件
ImageDrawer.js图片绘制插件有以下一些可用的配置参数. Duration:整个动画或每个步骤的绘制时间(以秒为单位) Background:在绘图时将颜色放在图片上 Callback:绘画 ...
- canvas 2.0 图片绘制
绘制图片drawImage 2013.02.21 by 十年灯·一条评论 本文属于<html5 Canvas画图系列教程> 这里的绘制图片是指把一张现成的图片,绘制到Canvas上面. 有 ...
- Win10系列:VC++绘制位图图片
在使用Direct2D绘制图片的过程中,通过IWICImagingFactory工厂接口来得到绘制图片所需要的资源.本小节将介绍如何通过IWICImagingFactory工厂接口得到这些资源,并使用 ...
- Android Developers:绘制9-patch图片
绘制9-patch图片工具让你使用可见即可得(WYSIWYG)编辑器轻松创建Nine Patch图像. 关于介绍Nine-path图片和它是如何工作的,请在2D Graphics的文档中查阅关于Nin ...
- GDI+ 怎样将图片绘制成圆形的图片
大概意思就是不生成新的图片,而是将图片转换为圆形图片. 实现代码例如以下: private Image CutEllipse(Image img, Rectangle rec, Size size) ...
- WPF GDI+字符串绘制成图片(二)
原文:WPF GDI+字符串绘制成图片(二) 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/BYH371256/article/details/83 ...
随机推荐
- webpack4工具链升级排坑记录
1.webpack4号称是0配置,于是我就只设置了entry.resolve.output.module->rules之类的属性,结果通过webpack-bundle-analyzer跑出来发现 ...
- sql server显示行号
-- 工具-> -- 选项-> -- 文本编辑器-> -- 所有语言-> -- 常规-> -- 显示-> -- 行号
- Java设计模式百例 - 观察者模式
观察者(Observer)模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,主体对象的状态变化会通知所有观察者对象.观察者模式又叫做发布-订阅(Publish/Subscribe ...
- Discuz代码研究-编码规范
Discuz中的编码规范很值得PHP开发人员借鉴.里面既介绍了编码时代码标记,注释,书写规则,命名原则等方面基础的内容,对代码的安全性,性能,兼容性,代码重用,数据库设计,数据库性能及优化作了阐述,这 ...
- 使用LNMP环境安装typecho博客的全程记录
虽然我是搞asp.net的 但是十分欣赏php,php有很多开源的博客程序 比如大名鼎鼎的Wordpress.还有各种独立博客大牛使用的z-blog,以及短小精悍的emblog. wordpress臃 ...
- python Beautiful Soup的使用
上一节我们介绍了正则表达式,它的内容其实还是蛮多的,如果一个正则匹配稍有差池,那可能程序就处在永久的循环之中,而且有的小伙伴们也对写正则表 达式的写法用得不熟练,没关系,我们还有一个更强大的工具,叫B ...
- LG3380 3380 【模板】二逼平衡树(树套树)
题意 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 查询k在区间内的排名 查询区间内排名为k的值 修改某一位值上的数值 查询k在区间内的前驱(前驱定义为严格小于x ...
- 前阿里DT总监欧吉良猝死:一代大神勾践陨落滴滴
欧吉良 阿里巴巴集团数据技术及产品部(DT)总监,淘宝网&天猫BI团队负责人,集团数据委员会数据运营组组长,阿里数据大学校长:2007年7月正式加入阿里,先后在支付宝.天猫.淘宝.数据技术及产 ...
- javascript深入浅出学习笔记
一.数据类型:1.对象与对象是不相等的,比如:console.log(new Object() == new Object())//结果是false;console.log([1,2] == [1,2 ...
- strtotime出现时区问题不一致的解决方法
学习源头:https://blog.csdn.net/longjuanfengzc/article/details/80622842 https://segmentfault.com/q/101000 ...