Winform之GDI绘制验证码】的更多相关文章

主要功能:点击验证码可更换,输入验证码进行登陆 需要导入命名空间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 <…
只为了记录下自己的学习历程,方便日后查看 现在开始言归正传,以下为其完整代码附上 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…
首先展示一下效果图如下: C#中的GDI特别方便,很多方法我们只要简单的调用就可以实现很复杂的功能.具体实现过程如下: 首先创建一个windows窗体应用(测试使用,实际开发winform程序时在需要的窗口添加控件即可). 因为GDI工具绘制出的验证码是图片类型的,所以我们要添加一个picturebox控件. 这里我们编辑GDI的click事件,这样可以实现点击重新生成验证码. 1.验证码的位数可以自己随便设置.因为验证码是随机产生的,所以要使用到Random类.直接上代码(这里我选择的是生成4…
GDI+最简单的理解就是用来绘图的.其中包括点.直线.矩形.字符串等等. 先简单来个例子,说明如何在winform窗体中绘制一条直线,并且这条直线不随着窗体的移动而消失. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using Sy…
2018年工作之余,想起来捡起GDI方面的技术,特意在RichCodeBox项目中做了两个示例程序,其中一个就是时钟效果,纯C#开发.这个CSharpQuartz是今天上午抽出一些时间,编写的,算是偷得浮生半日休闲吧.先来看看效果图吧: 这是直接在Winform的基础上进行绘制的.接下来,我对时钟进行了封装,封装成一个名为CSharpQuartz的类,效果如下: 这是把时钟封装后,实现的一种效果,CSharpQuartz内部开辟了一个线程,与系统时间,保持同步,每秒刷新一次.所采用的技术也就是G…
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 = { "微软雅黑…
C#中利用GDI+绘制旋转文本的文字,网上有很多资料,基本都使用矩阵旋转的方式实现.但基本都只提及按点旋转,若要实现在矩形范围内旋转文本,资料较少.经过琢磨,可以将矩形内旋转转化为按点旋转,不过需要经过不少的计算过程.利用下面的类可以实现该功能. using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D; namespace RotateText { p…
通过上面的效果截图可以看到,重绘后的MenuStrip和ContextMenuStrip可以添加自己的LOGO信息,实现了类似OFFICE2007的菜单显示效果. .NET对菜单控件的绘制提供了一个抽象类ToolStripRenderer,这个类里面提供了相应的绘制函数,只要重写这些函数,就可以实现菜单的重绘.MenuStrip和ContextMenuStrip提供了一个属性Renderer,该属性就是由ToolStripRenderer定义的,MenuStrip和ContextMenuStri…
MFC 用gdi绘制填充多边形区域 这里的代码是实现一个三角形的绘制,并用刷子填充颜色 在OnPaint()函数里面 运用的是给定的三角形的三个点,很多个点可以绘制多边形 CBrush br(RGB(40,130,170)); CRgn rgn; CPoint arrpt[3]; arrpt[0].x = m_rcAT.right-8; arrpt[0].y = m_rcAT.top+m_rcAT.Height()*2/5; arrpt[1].x = arrpt[0].x - 12; arrpt…
背景: GDI+ 绘制文本 时,如果 背景是透明的 —— 则会出现 锯齿. //其实,我不用这三个 属性 好多年了 //而且,这三个属性 在关键时刻还有可能 帮倒忙 //关键是:这三个属性,鸟用都没有 —— 不能消除锯齿 g.SmoothingMode = SmoothingMode.HighQuality; g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.CompositingQuality = Compositing…
C#GDI+ 绘制线段(实线或虚线).矩形.字符串.圆.椭圆 绘制基本线条和图形 比较简单,直接看代码. Graphics graphics = e.Graphics; //绘制实线 )) { pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid; //实线 graphics.DrawLine(pen,,,,); } //画出虚线 )) { pen.DashStyle = System.Drawing.Drawing2D.DashSty…
使用PHP绘制验证码  可直接使用 // 验证码 <?php $checkCode = ""; for ($i=0; $i < 4; $i++) { // 十进制转换为十六进制 $checkCode.=dechex(rand(1,15)); } //存入session session_start(); $_SESSION['checkCode']=$checkCode; //1创建画布 $img = imagecreatetruecolor(100, 30); //颜色 $…
纯代码实现GDI绘制仪表盘,效果在代码下面. public partial class HalfDashboardUc : UserControl { /// <summary> /// 仪表盘背景图片 /// </summary> private Image dashboardImage; /// <summary> /// 定义该仪表盘画布的最大值为371 /// </summary> ; /// <summary> /// 仪表盘画布的放大…
有时候在窗体中执行不断的GDI+操作的时候会出现闪速的状况,除了修改窗体的参数,更应该解决刷新本身的问题,双缓冲可能就是这样来的. 方法1: 用GDI绘制在位图上,然后再重新生成位图 Bitmap bt = , ); Graphics g = Graphics.FromImage(bt); g.DrawEllipse(Pens.Red, , , , ), ); g.Dispose(); gb.DrawImage(bt,,); gb.Dispose();…
在通常的登录界面我们都可以看到验证码,验证码的作用是检测是不是人在操作,防止机器等非人操作,防止数据库被轻而易举的攻破. 验证码一般用PHP和java等后端语言编写: 但是在前端,用canva或者SVG也可以绘制验证码: 让我们先来看一个简单的但是有点丑的验证码: 绘制验证码的关键点:选取的四个字符随机.字体的颜色.旋转角度随机.其中有五条线和50个随机的小点来干扰: 步骤: 画浅色背景 画随机文字 画5条干扰线 画100条干扰点(半径为1的圆)1.新建一个函数产生随机数 //1.新建一个函数产…
主要用来了解java代码怎么绘制验证码图片,实际开发中不会这样用 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //生成画布 int width = 120; int height = 40; BufferedImage bi = new BufferedImage(width, height, Buffer…
效果图: JDemo.java import java.io.File; import java.io.IOException; import static java.lang.System.out; import javax.imageio.ImageIO; public class JDemo { public static void main(String[] args) throws IOException { VerificationCode verificationCode = ne…
/*使用GDI绘制半透明矩形*/ void CDirectXDraw::DrawHalfOpacityRect(HDC hdc,CRect rect) { CDC dc; dc.Attach(hdc); CDC cdc; cdc.CreateCompatibleDC( &dc ); CBitmap bitmap, *pOldBitmap; bitmap.CreateCompatibleBitmap( &dc, rect.right, rect.bottom ); CRect src( re…
原文:C#WinForm 实现登录界面验证码功能(区分大小写+不区分大小写) 文章来自:https://blog.csdn.net/IT_xiao_guang_guang/article/details/104250015 一.功能界面 图1 验证码(区分大小写) 图2 验证码(不区分大小写) 二.创建一个产生验证码的类Class1 (1)生成随机验证码字符串,用的是Random随机函数 (2)创建验证码图片,将该字符串画在PictureBox控件中 Class1.cs: hide codeus…
最近接了个小项目10K.用了2个下班时间写完,共花费了6-7个小时完成.如有同类需求的可以与本人联系,QQ:120772981 功能目标: 需要写一个仿PPT画泳道图的组件.之前写过工作流的组件,其实这个跟工作流组件基本一样,所以写这个也得心应手.PPT的效果图如下, 在C#winform里面想要及支持手动拖拽又要只支持自定义的一些功能, 很会想到拖拽控件,控件直接放图片不就的了吗?这样也可以, 但后续控件元素越来越大的时候,可能会出现控件闪屏,严重的可能性能都跟不上,再有如果用户需要放大和缩小…
//创建GDI对象 Graphics g = this.CreateGraphics();// new Graphics(); //创建画笔对象 Pen pen = new Pen(Brushes.Red); //创建两个点 Point p1 = new Point(30, 50); Point p2 = new Point(250, 250); g.DrawLine(pen, p1, p2); Graphics g = this.CreateGraphics(); g.DrawString("…
一.概述 一般处理程序 ashx :它没有服务器控件,用response输出什么就是什么. 生成验证码原理:产生随机字符,并将字符生成为图片,同时储存到Session里去,然后验证用户输入的内容是否与Session中的验证码相符即可. 效果图:用户可以点击切换验证码信息. 二.一般处理程序 public class CheckCodeHandler : IHttpHandler, IRequiresSessionState//使用到Session,需要实现此接口IRequiresSessionS…
skin皮肤和DLL程序及文件:下载 链接:http://www.cnblogs.com/DebugLZQ/archive/2013/04/15/3021659.html…
在winform中绘制图形,可以使用gdi+来完成. 当绘制的图形大于目前窗口大小时,就需要滚动条来帮忙显示. 设置属性:Form.AutoScrollMinSize为要显示内容的大小. private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;…
现有一种场景,鼠标移动时,假设鼠标坐标为 X , Y , 需实时在 坐标 (X , 0) , (0 , Y) 两处更新内容. 方案一:增加两个label ,或其它控件,鼠标移动时,实时更新 label 坐标区域 , 及内容. MouseMove 事件代码: lblX.Location = ); lblY.Location = , e.Y); lblX.Text = e.X.ToString(); lblY.Text = e.Y.ToString(); 经过检单测式,鼠标移动时,CPU 升到 10…
在默认情况下,Gdi绘画操作的使用白纸(窗口的客户区)黑字(Pen的颜色)!前面我们已经讲过如何改笔,现在来学习改变白纸(GDI的绘制区域) 正常的纸为一个矩形形状!有时候小孩不小心撕掉纸的一角,不小心被纸中间掏空了,又或者纸被剪成了艺术品,比如: 如果在这样的图片上垂直方向的中央划一根4个像素的黑色的线条讲呈现出下面的效果 黑色的线条被纸分层了若干段,因为白色的部分不是纸! Winodws提供的绘制区域也就是相当于上面提到的纸!其中可用函数的的有 hRgn = CreateRectRgn(xL…
这个是绘制一条直线的代码 private void Form1_Load(object sender, EventArgs e)        {            //一根笔 颜色  一张纸  两点 绘制直线的对象        }        /// <summary>        /// 绘画一条直线        /// </summary> public void Straight()        {            //Graphics: 此类不能被继承…
早些年用过GDI的同学都知道,用GDI绘图API函数画斜线那个锯齿有多恶心.就像下图第一行的三条斜线: 坦白说,45度斜线在抗锯齿以前还是蛮抗锯齿的,哈哈,抗不抗都没什么差别. 那第二行很自然就看得出是抗锯齿之后的效果. 话不多说,直接给大家上代码. 创建Win32应用程序,在cpp文件的顶部加入GDI+的引用: #include <windows.h> #include <objidl.h> #define GDIPVER 0x0110 #include <gdiplus.…
<?php        //使用PHP绘图技术,画出自己的验证码 $checkCode="";    for($i=0;$i<4;$i++){                //dechex把一个十进制数转换成十六进制        $checkCode.=dechex(rand(1,15));    } //存入到session    session_start();    $_SESSION['checkcode']=$checkCode; //创建画布    $im…
注意: 真正项目中验证码图片都是由服务器端(PHP.JSP.Node.js)技术来生成. 最终效果: 代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> body { text-align: center; } canvas { background: #…