用GDI+画验证码】的更多相关文章

1.新建一个窗体应用程序,在上面拖一个pictureBox对象,为其添加单击事件 2.创建GDI对象.产生随机数画入图片中.画线条.最后将图片到pictureBox中,代码如下: private void pictureBox1_Click(object sender, EventArgs e) { //创建GDI对象 Bitmap bmp = ,); Graphics g = Graphics.FromImage(bmp); //产生随机数并画入图片中 Random r = new Rando…
Random r = new Random(); string str = ""; for (int i = 0; i < 5; i++) { int a= r.Next(0, 10); str += a;//将数字连接到一块 } Bitmap bm = new Bitmap(150, 90);//创建位图对象 Graphics g = Graphics.FromImage(bm);//在bm中重新画图 //创建字体跟颜色数组 string[] font = { "楷体…
只为了记录下自己的学习历程,方便日后查看 现在开始言归正传,以下为其完整代码附上 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Fo…
package net.yt.yuncare.widgets; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import java.lang.*; import java.util.Random; /** * Created by lenovo on 2018/5/14. */ public…
如何使用GDI+来制作一个随机的验证码 绘制验证码之前先要引用 using System.Drawing; using System.Drawing.Drawing2D; 首先,先写一个方法来取得验证码里的字符串 string CreateCode(int len)//len是自定义验证码的长度 { string str = "012ABCDEF34GHIJK56LMN789OPQabcRSTdefUVWghiXYZjklmnopqrstuvwxyz";//验证码所要用到的所有字符,这…
主要功能:点击验证码可更换,输入验证码进行登陆 需要导入命名空间System.Drawing; 产生五位的随机字符串: 1 Random random = new Random(); //产生5个随机字符串 str = null; ; i < ; i++) { , ); str = str + (char)j; } 画字符串 //创建图片 Bitmap bmp = ,); //创建GDI对象 Graphics g = Graphics.FromImage(bmp); //循环画字符串 ; i <…
首先展示一下效果图如下: C#中的GDI特别方便,很多方法我们只要简单的调用就可以实现很复杂的功能.具体实现过程如下: 首先创建一个windows窗体应用(测试使用,实际开发winform程序时在需要的窗口添加控件即可). 因为GDI工具绘制出的验证码是图片类型的,所以我们要添加一个picturebox控件. 这里我们编辑GDI的click事件,这样可以实现点击重新生成验证码. 1.验证码的位数可以自己随便设置.因为验证码是随机产生的,所以要使用到Random类.直接上代码(这里我选择的是生成4…
GDI+是一种绘图装置接口, 当拖动窗体是,窗体发生移动,window默认为从窗体移动到另一个地方,先发生擦除后再重新画一个窗体: 而我们自己动手画的图(如下面的线),不会重新画:在属性中,Paint,中,将画图的程序重新写一遍就可实现重画. 画一条线 private void button1_Click(object sender, EventArgs e) { // 创建GDI Graphics g = this.CreateGraphics(); //创建两个点 Point n1=new…
<?php header("content-type:image/png"); $width = 500; $height = 500; $img = imagecreatetruecolor($width, $height); $string = "hello"; //7种颜色,存入数组 $red = imagecolorallocate($img, 255, 0, 0); $white = imagecolorallocate($img, 255, 255…
PIL 简单绘画 def get_code_img(request): from PIL import Image, ImageDraw, ImageFont import random def random_color(): '''元组 (255,255,255)''' return (random.randint(0,255),random.randint(0,255),random.randint(0,255)) def random_char(): '''传入需生成字符的个数,返回列表'…
一. 因为项目须要,原来用GDI做的画线的功能.新的项目中考虑到垮平台的问题.打算用openCV来实现.故此做个效率对照. 二. 2点做一条线,来測试效率. 用了相同的画板大小---256*256的大小,函数通过參数输入.用GetTickCount来实现计时功能. 三. GDI的主要循代码例如以下: void show_line(int line_num,int point_num) { ULONAG start_time = get_tick_count(); VMGdiPolygon* te…
一. 由于项目需要,原来用GDI做的画线的功能,新的项目中考虑到垮平台的问题,打算用openCV来实现,故此做个效率对比. 二. 2点做一条线,来测试效率. 用了同样的画板大小---256*256的大小,函数通过参数输入,用GetTickCount来实现计时功能. 三. GDI的主要循代码如下: void show_line(int line_num,int point_num) { ULONAG start_time = get_tick_count(); VMGdiPolygon* test…
private void button1_Click(object sender, EventArgs e) { Graphics g = this.CreateGraphics(); g.Clear(Color.White); Pen curPen = new Pen(Brushes.Black, 1); //g.DrawLine(curPen, 10, 0, 10, 30); //划线 ; (10,30) 水平坐标形同 10,0, 10,30; int[] y = { 10, 20, 30,…
创建画刷 调用 CreateSoildBrush.CreateHatchBrush.CreateBrushIndirect 函数可以创建画刷. CreateSoildBrush:创建实心画刷: CreateHatchBrush:创建阴影画刷: CreateBrushIndirect:根据 LOGBRUSH 结构的内容创建画刷: Windows 使用被选入设备环境的画笔来描绘边线,使用被选入设备环境的画刷来填充图形. 画刷使用的示例代码: // 定义画刷句柄(HBRUSH) HBRUSH hBru…
代码 import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.PrintWriter; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.Servl…
该类是生成一个验证码的类,集合了网上大部分的C#关于GDI+的文章进行多次改进,现在已经形成了可在生产环节中使用的验证码. 该验证码加入了背景噪点,背景噪点曲线和直线,背景噪点文字以及扭曲,调暗,模糊等.完全可以实现防识别. 对安全性要求比较高的网站尤其适用. 同时该类还还收集了GDI+的图像处理方面的函数,包括雾化,扭曲,水波,锐化,高斯模糊,画直线,画曲线生成随机颜色,缩放图片,柔化图片,图片黑白化,增加曝光度,RGB滤镜,绘制圆角等功能. using System; using Syste…
大二学长让我学下GDI绘制验证码,然后自己就试了试了.找了点视频看了下. 现在会画直线,矩形,字符串,制作验证码 一.绘制一条直线 private void button1_Click(object sender, EventArgs e) { Graphics g = this.CreateGraphics(); //实例化 Pen pen = new Pen(Color.Black); //创建一只笔,颜色 Point p1 = , ); //两点确定一条直线 Point p2 = ,);…
从别人那拷贝的 #region 定义和初始化配置字段 //用户存取验证码字符串 public string validationCode = String.Empty; //生成的验证码字符串 public char[] chars = null; /// <summary> /// 获取随机验证码 /// </summary> public String ValidationCode { get { return validationCode; } } /// <summa…
关于Graphics也有了基本了解下面想说的的是学这个东东干什么呢,到底如何应用目前常见应用1.验证码(参照网上的)2.打印排版(会提到关于条形码大小设置)3.自定义控件 一.验证码 class ValidateCode { #region 定义和初始化配置字段 //用户存取验证码字符串 public string validationCode = String.Empty; //生成的验证码字符串 public char[] chars = null; /// <summary> /// 获…
今天正式开一本新书,<C# GDI+ 破镜之道>,同样是破镜之道系列丛书的一分子. 关于GDI+呢,官方的解释是这样的: GDI+ 是 Microsoft Windows 操作系统的窗体子系统应用程序编程接口 (API). GDI+ 是负责在屏幕和打印机上显示的信息. 顾名思义,GDI+ 是包含 GDI 与早期版本的 Windows 图形设备接口的后续版本. 好,两个关键信息: 窗体子系统应用的编程接口 图形设备接口 充分说明了GDI+的应用场景与用途.需要了解更多呢,就去查阅一下吧. 本书的…
本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能. 通过测试的系统: Windows 8.1 64bit Ubuntu Server 16.04 LTS 64bit Fedora 24 64bit CentOS 7.2 64bit 可以实现以下功能: Open jpg, bmp, ico, png Save jpg, bmp, ico, png Resize image Draw graphics with brush and pen Open font…
MD5加密 将字符串进行加密,无法解密.网上的解密方式也都是在库里找,找不到也没有. 1 protected void Page_Load(object sender, EventArgs e) 2 { 3 string s = "123"; 4 Response.Write(getMd5(s)); 5 } 6 public string getMd5(string str) 7 { 8 MD5 md5 = MD5.Create();//MD5抽象类无法实例化 实例化该方法 9 byt…
本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能. 通过测试的系统: Windows 8.1 64bit Ubuntu Server 16.04 LTS 64bit Fedora 64bit CentOS 7.2 64bit 可以实现以下功能: Open jpg, bmp, ico, png Save jpg, bmp, ico, png Resize image Draw graphics with brush and pen Open font an…
如果说要做验证码,那不得不提的就是GDI+绘图了.我们都知道验证码是以图片形式展示的,而且是动态生成的,这样就需要我们去画出它. 科普一下,什么是GDI+? GDI+是图形设备接口(GDI)的高级版本, 提供了各种丰富的图形图像处理功能.GDI+主要由二维矢量图形.图像处理和版式3部分组成.GDI+为使用各种字体.字号和样式来显示文本这种复杂任务提供了大量的支持. 下面说说验证码,对于验证码这样的图片,我觉得是由两部分组成的,一部分是矩形的背景,另一部分是在其上的字母数字组合(有的时候有汉字,有…
进制 表示某一位置上的数运算时是逢X进一位.二进制就是逢二进一, 十进制是逢十进一,十六进制是逢十六进一,以此类推. so:二进制001010101只有0和1计算机中的数据都是二进制表示,四进制以0.1.2.3四个数字表示任何实数.十进制0~9数字组成,十六进制0~9以及ABCEDF组成(表示十进制数)10~15. Directory类 用来操作文件夹的 1 Directory.CreateDirectory("d:/ccc/cc"); //创建文件夹 2 3 Directory.De…
今儿有一个任务是输出一串字符,要求用GDI画出于是: Bitmap bm = new Bitmap(200, 200);             Graphics g = Graphics.FromImage(bm);             g.Clear(Color.Transparent);//画背景色             g.DrawString("asdwqeqr", new Font("宋体", 14), new SolidBrush(Color.B…
该验证码生成类集合了网上大部分的验证码生成类的精华,博采众长并多次改进,现在已经形成了可在生产环节中使用的验证码. 该验证码加入了背景噪点,背景噪点曲线和直线,背景噪点文字以及扭曲,调暗,模糊等.完全可以实现防识别. 按照国际惯例先贴张效果图吧: #region 验证码生成类 /// <summary> /// 验证码生成类 /// </summary> public class ValidateCode { #region 定义和初始化配置字段 //用户存取验证码字符串 publ…
目录 #验证码效果图 #代码 0.html代码 1.Handler中调用验证码生成类 2.验证码图片绘制生成类 3.高斯模糊算法类 #注意 #参考 在web项目中,为了防止登录被暴力破解,需要在登录的时候加入验证码验证,思路是: 1)登录页面打开,向 服务端请求生成验证码图片,并将验证码字符串存入session: 2)登录时将客户端输入的验证码字符串传到服务端,与session中的验证码进行比较,如果验证码正确,再进行登录验证: #验证码效果图 #代码 0.html代码 <img id="…
哈哈好久没冒泡了,最进看见点选验证码有点意思,所以想自己写一个. 先上效果图 如果你被这个效果吸引了就请继续看下去. 贴代码前先说点思路: 1.要有一个汉字库,并按字形分类.(我在数据库里是安部首分类的) 2.获取验证码(也就是取几个文字做验证码) 3.根据取出来的文字去找形近字 4.排列验证码文字和形近字 5.绘制图片 6.显示 6.写个博客分享一下(分享代码改变世界) 一.获取字库 我国文化博大精深,辣么多的字从哪儿来?当然我不可能手动加进去,于是我就在网上随便找了一个能查汉字的网站,去抓别…
系列目录 我们上一节建了数据库的表,但我发现很多东西还未完善起来,比如验证码,我们先做好验证码吧,验证码我们再熟悉不过了,为了防止恶意的登录,我们必须在登录页面加入验证码,下面我将分享一个验证码,这个是用C#画的,原理是,生成一个随机4位数,将其保存为session或者是cookie形式,将用户输入的验证码进行对比, 验证码可以是一个视图cshtml,或者是一个aspx页面,也可以是一个ashx一般处理程序,我们这里用ashx来显示 在App.Admin下的Core文件夹下新建一个一般处理文件v…