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图片绘制与图片验证码的更多相关文章

  1. android绘制圆形图片的两种方式

    看下效果先 下面有完整的示例代码 使用BitmapShader(着色器) 我们在绘制view 的时候 就是小学上美术课 用水彩笔在本子上画画 使用着色器绘制圆形图片最简单的理解方式 就是把bitmap ...

  2. GDI+ 如何将图片绘制成圆形的图片

    大概意思就是不生成新的图片,而是将图片转换为圆形图片. 实现代码如下: private Image CutEllipse(Image img, Rectangle rec, Size size) { ...

  3. 使用MFC CImage类绘制PNG图片时遇到的问题

    为了测试CImage绘制PNG图片的效果,我们用截图软件截得一张360的界面,然后使用PhotoShop等工具在图片的周边加上了透明的区域,然后保存成PNG图片文件.CImage首先从文件中加载,即 ...

  4. ImageDrawer.js图片绘制插件

    ImageDrawer.js图片绘制插件有以下一些可用的配置参数. Duration:整个动画或每个步骤的绘制时间(以秒为单位) Background:在绘图时将颜色放在图片上 Callback:绘画 ...

  5. canvas 2.0 图片绘制

    绘制图片drawImage 2013.02.21 by 十年灯·一条评论 本文属于<html5 Canvas画图系列教程> 这里的绘制图片是指把一张现成的图片,绘制到Canvas上面. 有 ...

  6. Win10系列:VC++绘制位图图片

    在使用Direct2D绘制图片的过程中,通过IWICImagingFactory工厂接口来得到绘制图片所需要的资源.本小节将介绍如何通过IWICImagingFactory工厂接口得到这些资源,并使用 ...

  7. Android Developers:绘制9-patch图片

    绘制9-patch图片工具让你使用可见即可得(WYSIWYG)编辑器轻松创建Nine Patch图像. 关于介绍Nine-path图片和它是如何工作的,请在2D Graphics的文档中查阅关于Nin ...

  8. GDI+ 怎样将图片绘制成圆形的图片

    大概意思就是不生成新的图片,而是将图片转换为圆形图片. 实现代码例如以下: private Image CutEllipse(Image img, Rectangle rec, Size size) ...

  9. WPF GDI+字符串绘制成图片(二)

    原文:WPF GDI+字符串绘制成图片(二) 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/BYH371256/article/details/83 ...

随机推荐

  1. VS10x CodeMap

    VS10x CodeMap 注册码(key): #$aCN/L/ra73OaqCJENXc2JIDL61IMawNWBBX+PxhBzobE9w3QlcrwoXeB3DWBC2f56y9r0Hx2XP ...

  2. Linux下用c语言实现whereis.

    简单的一个whereis的实现,代码如下: #include <stdio.h> #include <errno.h> #include <dirent.h> #i ...

  3. 登录页面jsp跳转到另一个jsp 与jsp-Servlet-jsp

    登录页面jsp 到另一个jsp,与jsp-Servlet-jsp  都是可以从表单提交参数信息. 但是jsp-jsp ,只能通过<%=request.getParameter("use ...

  4. 【机器学习基石笔记】九、LinearRegression

    [一] 线性回归直觉上的解释 得到Ein = mean(y - wx)^2 [二] w的推导 Ein = 1/N || xw - y||^2 连续.可微.凸函数 在各个方向的偏微分都是0 Ein = ...

  5. PostBack IsPostBack

    这涉及到aspx的页面回传机制的基础知识 postback是回传 即页面在首次加载后向服务器提交数据,然后服务器把处理好的数据传递到客户端并显示出来,就叫postback, ispostback只是一 ...

  6. ubuntu 上查看文件的内容,二进制形式展现

    Vim 可以用来查看和编辑二进制文件 vim -b egenea-base.ko   加上-b参数,以二进制打开 然后输入命令  :%!xxd -g 1  切换到十六进制模式显示

  7. 【英语】Bingo口语笔记(84) - 惊讶的表达

  8. MySql必知必会实战练习(五)存储过程

    1. 为什么使用存储过程? (1) 通过把处理封装在容易使用的单元中,简化复杂操作 (2) 为了保证数据的完整性,不要求反复建立一系列的处理操作,所有开发人员和应用程序都使用同一(试验和测试)存储过程 ...

  9. mysql锁之Next-Key Locks

    一个Next-key锁结合了行锁和gap锁. InnoDB执行一个行级别锁在这样的一个途径,那就是它搜索或者扫描一个表索引时,它设置共享或者独占锁在它遭遇的索引记录上.于是,行级锁是真实的行记录锁.一 ...

  10. 洛谷【P1064】金明的预算方案

    浅谈\(DP\):https://www.cnblogs.com/AKMer/p/10437525.html 题目传送门:https://www.luogu.org/problemnew/show/P ...