用GDI+画验证码
1、新建一个窗体应用程序,在上面拖一个pictureBox对象,为其添加单击事件
2、创建GDI对象、产生随机数画入图片中、画线条、最后将图片到pictureBox中,代码如下:
private void pictureBox1_Click(object sender, EventArgs e)
{
//创建GDI对象
Bitmap bmp = new Bitmap(,);
Graphics g = Graphics.FromImage(bmp); //产生随机数并画入图片中
Random r = new Random();
string str = "";
for (int i = ; i < ;i++ )
{
str += r.Next(,);
}
for (int i = ; i < ; i++)
{
Point p = new Point(i*,);
string[] fonts = { "微软雅黑", "宋体", "黑体", "隶书", "仿宋" };
Color[] colors = { Color.Yellow,Color.Blue,Color.Black,Color.Red,Color.Pink};
g.DrawString(str[i].ToString(),new Font(fonts[r.Next(,)],,FontStyle.Bold),new SolidBrush(colors[r.Next(,)]),p); } //画线
for (int i = ; i < ; i++)
{
Point p1 = new Point(r.Next(,bmp.Width),r.Next(,bmp.Height));
Point p2 = new Point(r.Next(,bmp.Width),r.Next(,bmp.Height));
g.DrawLine(new Pen(Brushes.Green),p1,p2);
} //将图片镶嵌到pictureBox中
pictureBox1.Image = bmp; }
用GDI+画验证码的更多相关文章
- GDI画验证码
Random r = new Random(); string str = ""; for (int i = 0; i < 5; i++) { int a= r.Next(0 ...
- 通过GDI+绘制 验证码
只为了记录下自己的学习历程,方便日后查看 现在开始言归正传,以下为其完整代码附上 using System; using System.Collections.Generic; using Syste ...
- android 开发 View _12_ 用Canvas 绘制一张图片(博客中演示用Canvas画验证码图片)
package net.yt.yuncare.widgets; import android.graphics.Bitmap; import android.graphics.Canvas; impo ...
- 如何用GDI+画个验证码
如何使用GDI+来制作一个随机的验证码 绘制验证码之前先要引用 using System.Drawing; using System.Drawing.Drawing2D; 首先,先写一个方法来取得验证 ...
- Winform之GDI绘制验证码
主要功能:点击验证码可更换,输入验证码进行登陆 需要导入命名空间System.Drawing; 产生五位的随机字符串: 1 Random random = new Random(); //产生5个随机 ...
- C#验证码 使用GDI绘制验证码
首先展示一下效果图如下: C#中的GDI特别方便,很多方法我们只要简单的调用就可以实现很复杂的功能.具体实现过程如下: 首先创建一个windows窗体应用(测试使用,实际开发winform程序时在需要 ...
- (转载)C# GDI+ 画简单的图形:直线、矩形、扇形等
GDI+是一种绘图装置接口, 当拖动窗体是,窗体发生移动,window默认为从窗体移动到另一个地方,先发生擦除后再重新画一个窗体: 而我们自己动手画的图(如下面的线),不会重新画:在属性中,Paint ...
- PHP学习笔记(5)GD库画验证码
<?php header("content-type:image/png"); $width = 500; $height = 500; $img = imagecreate ...
- python 用 PIL 模块 画验证码
PIL 简单绘画 def get_code_img(request): from PIL import Image, ImageDraw, ImageFont import random def ra ...
随机推荐
- 开源蜘蛛集合(转自haizhiguang博客,链接:http://blog.csdn.net/haizhiguang/article/details/20209573)
各种蜘蛛: Heritrix 点击次数:1458 Heritrix是一个开源,可扩展的web爬虫项目.Heritrix设计成严格按照robots.txt文件的排除指示和META robots标签. ...
- 安装nginx+ngx_lua支持WAF防护功能
安装nginx+ngx_lua支持WAF防护功能 nginx lua模块淘宝开发的nginx第三方模块,它能将lua语言嵌入到nginx配置中,从而使用lua就极大增强了nginx的能力.nginx以 ...
- HTML <img>标签 创建图像映射
初级前端一枚 下面代码是在图片上创建图像映射 自己整理了下 做个笔记 希望也可以帮助后来学习的朋友! <map name="planetmap"> <area s ...
- RGB和HSV颜色空间
转载:http://blog.csdn.net/carson2005/article/details/6243892 RGB颜色空间: RGB(red,green,blue)颜色空间最常用的用途就是显 ...
- 阅读:RAID5和RAID10,哪种RAID更适合你
阅读:RAID5和RAID10,哪种RAID更适合你-------------------------------------------2013/10/06 存储是目前IT产业发展的一大热点,而RA ...
- CSS格式与布局中三种位置的理解与应用
第一种位置关系:position:fixed 锁定位置(相对于整个浏览器的位置),常用在各大网站的右下角或其它位置的小广告. 如果需要调整锁定位置,需要使用如下方式:<div style=&q ...
- 朱世杰恒等式的应用-以CF841C为例
题目大意 Codeforces 841C Leha and Function. 令\(F(n,k)\)为在集合\(\{x|x \in [1,n]\}\)中选择一个大小为k的子集,最小元素的期望值. 给 ...
- MYSQL报错注入方法整理
1.通过floor暴错 /*数据库版本*/ SQL http://www.hackblog.cn/sql.php?id=1 and(select 1 from(select count(*),conc ...
- 神器Vim之命令介绍
前天晚上看casa直播项目的组件化,不仅了解了如何快速对现有项目进行组件化,以及进一步不断迭代,实现完全组件化的过程:同时,也被casa的vim技能的熟练程度所震撼.早就听说,vim是unix系统上文 ...
- 20个开发人员非常有用的Java功能代码
本文将为大家介绍20个对开发人员非常有用的Java功能代码.这20段代码,可以成为大家在今后的开发过程中,Java编程手册的重要部分. 1. 把Strings转换成int和把int转换成String ...