利用GDI+在Winfrom绘制验证码

            string yzm;  
private void yangzhengma()
        {
            Bitmap bt = new Bitmap(70,22);//创建位图对象
            Graphics gs = Graphics.FromImage(bt);//在该位图上进行绘制
            Random rd = new Random();
            yzm="";
            for (int i = 0; i < 5; i++)
            {   yzm+=rd.next(0,10);
                string[] frons = { "微软雅黑","宋体","黑体","仿宋","隶书"};//创建字体数组
                Color[] color = { Color.Black, Color.Yellow, Color.Red, Color.Green, Color.Blue };
                gs.DrawString(yzm[i].ToString(),new Font(frons[rd.Next(0,5)],12,FontStyle.Bold),new SolidBrush(color[rd.Next(0,5)]),i*12,5);
            }
            for (int i = 0; i < 10; i++)//绘制验证码中的直线
            {
                Point pt1 = new Point(rd.Next(0,70),rd.Next(0,20));
                Point pt2 = new Point(rd.Next(0, 70), rd.Next(0, 20));
                Pen pen = new Pen(Color.Green);
                gs.DrawLine(pen,pt1,pt2);
            }
            for (int i = 0; i < 100; i++)绘制验证中的白点
            {
               
                bt.SetPixel(rd.Next(0, 70), rd.Next(0, 20), Color.Black);
            }
            toolStripLabel5.BackgroundImage = bt;
            
        }

程序最后只需要讲输入的字符串与string   yzm进行比较即可。设计的最终效果如图:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JadePeng的技术博客

易企秀前端压缩源码分析与还原

你是否想知道易企秀炫酷的H5是如何实现的,原理是什么,本文会为你揭秘并还原压缩过的源代码。 易企秀是一款h5页面制作工具,因方便易用成为业界标杆。后续一个项目会...

1K70
来自专栏从零开始学 Web 前端

11 - JavaSE之GUI

PS: Panel 的 setBounds 方法中设置的位置大小是相对于相对装入的 Frame 窗口位置和大小的。

21950
来自专栏柠檬先生

jQuery 效果使用

.hide()   隐藏匹配的元素。   .hide()     这个方法不接受任何参数。   .hide([duration][,comp...

21490
来自专栏向治洪

微信小程序之picker组件

作为移动端的分发入口,微信小程序虽然没有当初期望的那么火,但是却是一个不能忽视的入口。撇开微信小程序对于腾讯生态的原因不说,微信小程序对于开发还是很方便的,特别...

916100
来自专栏琯琯博客

JavaScript 103 条技能

1、原生JavaScript实现字符串长度截取 function cutstr(str, len) { var temp; var ic...

29060
来自专栏mathor

事件模型

 事件模型如何理解呢,举个例子,你老婆出门了,让你在家看孩子,难道你每过一分钟就去看一次孩子吗,对于计算机来说,我做一个按钮,难道就一直监听这个按钮使用没有...

10410
来自专栏烙馅饼喽的技术分享

asp.net生成透明gif的准完美方案

       我最近在实现我的WMS服务器的时候,发现了一个超级郁闷的问题,问题描述如下:客户需要动态叠加一个透明层到底图上,比如说公交线路层,这个层有透明背景...

60770
来自专栏Coco的专栏

【CSS进阶】原生JS getComputedStyle等方法解析

24050
来自专栏緣來來來

Python爬虫 --- 2.2 Scrapy 选择器的介绍

Scrapy提取数据有自己的一套机制,被称作选择器(selectors),通过特定的Xpath或者CSS表达式来选择HTML文件的某个部分 Xpath是专门在X...

12520
来自专栏web编程技术分享

【H5 音乐播放实例】第五节 音轨制作

14330

扫码关注云+社区

领取腾讯云代金券