1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9.  
  10. namespace WindowsFormsApplication1
  11. {
  12. public partial class Form1 : Form
  13. {
  14. public Form1()
  15. {
  16. InitializeComponent();
  17. }
  18.  
  19. private void Form1_Load(object sender, EventArgs e)
  20. {
  21. //一张纸 一根笔 一个人 两个点
  22.  
  23. }
  24. //画直线
  25. private void Form1_Paint(object sender, PaintEventArgs e)
  26. {
  27. Graphics gp = this.CreateGraphics();
  28. Pen p = new Pen(Color.Blue);
  29. Point p1 = new Point(, );
  30. Point p2 = new Point(, );
  31. gp.DrawLine(p, p1, p2);
  32. }
  33.  
  34. //画多线直线
  35. private void button1_Click(object sender, EventArgs e)
  36. {
  37. //创建一个GDI+ 对象
  38. Graphics g = this.CreateGraphics();
  39. //创建画笔对象
  40. Pen pen = new Pen(Color.Blue);
  41. //创建两个点
  42. Point p1 = new Point(, );
  43. Point p2 = new Point(, );
  44. //在画板中用pen在p1和p2两个点之间画一条直线
  45. g.DrawLine(pen, p1, p2);
  46. //pos为point数组,在画板中画多条直线
  47. Point p3 = new Point(, );
  48. Point p4 = new Point(, );
  49. Point[] pos = { p1, p2, p3, p4 };
  50. g.DrawLines(pen, pos);
  51. }
  52.  
  53. //画矩形
  54. private void button2_Click(object sender, EventArgs e)
  55. {
  56. //创建GDI+对象
  57. Graphics gp = this.CreateGraphics();
  58. //创建矩形对象 左上角度座标 宽 高
  59. Rectangle rec = new Rectangle(new Point(, ), new Size(, ));
  60. gp.DrawRectangle(new Pen(Color.Blue), rec);
  61. }
  62.  
  63. //填充矩形
  64. private void button3_Click(object sender, EventArgs e)
  65. {
  66. //创建GDI+对象
  67. Graphics gp = this.CreateGraphics();
  68. //给定要填充的矩形对象
  69. Rectangle rec = new Rectangle(new Point(, ), new Size(, ));
  70. //填充颜色 获取系统颜色 给定要填充的矩形
  71. gp.FillRectangle(Brushes.DarkGreen, rec);
  72. }
  73.  
  74. //画扇形,并填充
  75. private void button4_Click(object sender, EventArgs e)
  76. {
  77. //创建GDI+对象
  78. Graphics gp = this.CreateGraphics();
  79. //给定要填充的矩形对象
  80. Rectangle rec = new Rectangle(new Point(, ), new Size(, ));
  81. //绘制扇形 pen对象 矩形 右角 左角度
  82. gp.DrawPie(new Pen(Color.Red), rec, , );
  83. //填充扇形 获取系统对象 矩形 右角 左角度
  84. gp.FillPie(Brushes.DarkGreen, rec, , );
  85. }
  86.  
  87. //画文字
  88. private void button5_Click(object sender, EventArgs e)
  89. {
  90. //创建GDI+对象
  91. Graphics g = this.CreateGraphics();
  92. //绘制文本 文本 字体样式: 字体 字号 样式粗?斜?... 获取系统颜色 绘制到的座标点
  93. g.DrawString("中国您好!", new Font("华文行楷", , FontStyle.Italic), Brushes.Red, new Point(, ));
  94. }
  95.  
  96. //验证码
  97. private void pictureBox1_Click(object sender, EventArgs e)
  98. {
  99. //生成1到9之间的4个随机数
  100. Random r = new Random();
  101. string str = "";
  102. for (int i = ; i < ; i++)
  103. {
  104. int rNumber = r.Next(, );
  105. //累加到空字符串中
  106. str += rNumber;
  107. }
  108.  
  109. //创建GDI+对象
  110. //创建图片对象, 指定 宽 和 高
  111. Bitmap bm = new Bitmap(,);;
  112. //从指定的Image对象创建新的Grapics画板
  113. Graphics g = Graphics.FromImage(bm);
  114.  
  115. //数组存放字体
  116. string[] fonts = {"黑体","微软雅黑","隶书","楷体"};
  117. //数组存放颜色
  118. Color[] colors = {Color.Red,Color.Yellow,Color.Pink,Color.Purple};
  119. //画字
  120. for (int i = ; i < ; i++)
  121. {
  122. //指定座标
  123. Point p = new Point(i*,);
  124. //画文字
  125. g.DrawString(str[i].ToString(), new Font(fonts[i], , FontStyle.Italic), new SolidBrush(colors[i]),p);
  126.  
  127. }
  128. //画线
  129. for (int j = ; j < ; j++)
  130. {
  131. Point p1 = new Point(r.Next(,bm.Width),r.Next(bm.Height));
  132. Point p2 = new Point(r.Next(,bm.Width),r.Next(,bm.Height));
  133. g.DrawLine(new Pen(Color.Green), p1, p2);
  134. }
  135. //画像素点
  136. for (int i = ; i < ; i++)
  137. {
  138. Point p1 = new Point(r.Next(,bm.Width),r.Next(bm.Height));
  139. Point p2 = new Point(r.Next(,bm.Width),r.Next(,bm.Height));
  140. bm.SetPixel(p1.X, p1.Y, Color.Black);
  141. }
  142.  
  143. //将bm这个图片直接镶嵌到pictureBox上
  144. pictureBox1.Image = bm;
  145. }
  146. }
  147. }

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. PostgreSQL老司机博客 经常翻翻收获不小

    德歌:https://github.com/digoal/blog/blob/master/README.md 唐成:http://blog.osdba.net/525.html 后面持续更新.../ ...

  2. Markdown转HTML之Node篇

    前言 环境及编码 搭建环境 express markdown-it commander rd 核心编码 cmd_preview模块 cmd_build模块 打造命令行工具 写点xxmd 演示 总结 前 ...

  3. Ubuntu+Rmarkdown的中文slides实现(附GitHub template)

    这两天要做毕业论文的答辩slides,搜Rmarkdown中文slides的时候百度到了自己两年前的博客 R+markdown+LaTeX 中文编译解决方案.讲真我一开始还真没有认出来,一看这文风和博 ...

  4. windows 下后台启动 redis

    1. 进入 DOS窗口 2. 在进入Redis的安装目录 3. 输入:redis-server --service-install redis.windows.conf --loglevel verb ...

  5. linux【基础命令】

    最近在学linux,避免一些命令忘记,所以在此记录一下: linux文件列表遍历 ls -a 列出所有的文件及文件夹 包括隐藏的ls -l 列出文件目录的详细信息 history 查看历史命令ctrl ...

  6. Linux 下新增用户的流程

    一: 新增用户 1.添加新的用户账号使用useradd命令,其语法如下: 代码:useradd 选项 用户名其中各选项含义如下: 代码:-c comment 指定一段注释性描述.-d 目录 指定用户主 ...

  7. phpcms v9 tags调用方法

    {loop $keywords $keyword} <a href="{APP_PATH}index.php?m=content&c=tag&catid={$catid ...

  8. SQl_case when

  9. Elasticsearch.net项目

    Elasticsearch.net项目实战 https://www.cnblogs.com/lucky_hu/p/9746736.html elasticsearch.net项目实战 @智客幸达 目录 ...

  10. 【java规则引擎】drools6.5.0版本api简介

    在有些术语使用的时候,我有时候会用KIE项目.KIE引擎或者Drools项目.Drools引擎,大家应该理解KIE是Drools等项目的一个统称,所以在大多数情况下KIE或者特指Drools都是差不多 ...