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 ...
随机推荐
- PostgreSQL老司机博客 经常翻翻收获不小
德歌:https://github.com/digoal/blog/blob/master/README.md 唐成:http://blog.osdba.net/525.html 后面持续更新.../ ...
- Markdown转HTML之Node篇
前言 环境及编码 搭建环境 express markdown-it commander rd 核心编码 cmd_preview模块 cmd_build模块 打造命令行工具 写点xxmd 演示 总结 前 ...
- Ubuntu+Rmarkdown的中文slides实现(附GitHub template)
这两天要做毕业论文的答辩slides,搜Rmarkdown中文slides的时候百度到了自己两年前的博客 R+markdown+LaTeX 中文编译解决方案.讲真我一开始还真没有认出来,一看这文风和博 ...
- windows 下后台启动 redis
1. 进入 DOS窗口 2. 在进入Redis的安装目录 3. 输入:redis-server --service-install redis.windows.conf --loglevel verb ...
- linux【基础命令】
最近在学linux,避免一些命令忘记,所以在此记录一下: linux文件列表遍历 ls -a 列出所有的文件及文件夹 包括隐藏的ls -l 列出文件目录的详细信息 history 查看历史命令ctrl ...
- Linux 下新增用户的流程
一: 新增用户 1.添加新的用户账号使用useradd命令,其语法如下: 代码:useradd 选项 用户名其中各选项含义如下: 代码:-c comment 指定一段注释性描述.-d 目录 指定用户主 ...
- phpcms v9 tags调用方法
{loop $keywords $keyword} <a href="{APP_PATH}index.php?m=content&c=tag&catid={$catid ...
- SQl_case when
- Elasticsearch.net项目
Elasticsearch.net项目实战 https://www.cnblogs.com/lucky_hu/p/9746736.html elasticsearch.net项目实战 @智客幸达 目录 ...
- 【java规则引擎】drools6.5.0版本api简介
在有些术语使用的时候,我有时候会用KIE项目.KIE引擎或者Drools项目.Drools引擎,大家应该理解KIE是Drools等项目的一个统称,所以在大多数情况下KIE或者特指Drools都是差不多 ...