看了传智的视频,做到了验证码这一步,在视频中虽然没有验证码怎么做,但是有源码,照着源码打了一个,想着要做些总结。
验证码是涉及GDI+的操作,视频中谈及了GDI+三步:1、画布创建;2、给画布创建画笔;3、传入给要绘制的素材。
该验证可以调节字体大小、背景颜色、边框颜色,传入素材是用GUID函数生成(曾经见过有用数组然后剔除某些数据后随机选取,或许这个办法可以多避免一些1和l,0和o之类的显示尴尬吧,但是这有必要的吗?)。去网上看了几篇有关验证GDI+绘制的,突然感觉到验证码中也是大有学问啊,可以写个近2000多行的代码也是厉害了,验证码中大多数是用字符自动挑选然后生成的,感觉只是麻烦,不过对于用户可能体验会好点,直接用GUID程序员省事了(懒人啊,哈哈)。别人的验证码背景加上了背景噪点曲线和直线,背景噪点文字以及扭曲,调暗,模糊等,还包括了GDI+的图像处理方面的函数,包括雾化,扭曲,水波,锐化,高斯模糊,画直线,画曲线生成随机颜色,缩放图片,柔化图片,图片黑白化,增加曝光度,RGB滤镜,绘制圆角等功能。http://my.oschina.net/idufei/blog/95502(大神之作,感觉用来了解技术还是挺好的)SAD
对于自己学习的这个只是加上了少量的背景噪点(而且是单色噪点)和字符旋转而已。
背景噪点确定位置是在(x,y)=(random.next(0, 画布背景宽度),random.next(0, 画布背景高度) ,在文字方面进行了居中处理,多颜色随机选取(数组,这应该是常用的吧),字体的随机选择还有数字的旋转处理,然后对每一个字进行处理,对于旋转角度的,随机的选择,但是范围确实(-RandAngle,RandAngle) 之间了,对于代码中还是有不懂的代码

            //移动光标到指定位置graphics.TranslateTransform(dot.X, dot.Y);graphics.RotateTransform(angle);graphics.DrawString(item.ToString(CultureInfo.InstalledUICulture), font, b, 1, 1, format);//转回去graphics.RotateTransform(-angle);graphics.TranslateTransform(2, -dot.Y); //移动光标到指定位置

总结:
1、创建画布(大小看字体大小和字数),获取该画布内存使用
2、背景处理,样式处理(加效果)
3、传入字符以及字符处理(拆散)和写入图片,加入了旋转、颜色、字体、居中处理
4、存储类型、写入数据流保存

(在此致谢传智播客发布的公开课)

生成GUID 全局唯一标识符:
格式范例
1、Guid.NewGuid().ToString(“N”) 结果为:
38bddf48f43c48588e0d78761eaa1ce6
2、Guid.NewGuid().ToString(“D”) 结果为:
57d99d89-caab-482a-a0e9-a0a803eed3ba
3、Guid.NewGuid().ToString(“B”) 结果为:
{09f140d5-af72-44ba-a763-c861304b46f8}
4、Guid.NewGuid().ToString(“P”) 结果为:
(778406c2-efff-4262-ab03-70a77d09c2b5)
(来自博客园 一天到晚游泳的鱼 http://www.cnblogs.com/pato/archive/2010/01/09/1643008.html) (未申请放置权限,不知道会不会侵权啊)

C# 验证码生成照码编程之后相关推荐

  1. java 验证码 源码_java 验证码生成源码

    fontList = new ArrayList(); fontList.add(new Font("微软 雅黑", Font.LAYOUT_NO_START_CONTEXT, 3 ...

  2. php验证码雪花源码,php如何生成雪花背景验证码(附代码)

    本文章来给大家介绍php生成雪花背景验证码程序代码 ,有需要的朋友可进入参考参考. 验证码生成程序<?php session_start(); session_register("lo ...

  3. 字节码编程 | 使用Javassist动态生成Hello World

    大家好,我是冰河~~ 字节码编程在实际的业务开发(CRUD)中并不常用,但是随着网络编程,RPC.动态字节码增强技术和自动化测试以及零侵入APM监控的不断发展与大量使用,越来越多的技术需要使用到字节码 ...

  4. 若依前后端分离框架——生成数字验证码功能源码学习

    使用版本:Ruo-Vue 3.8.0 项目地址:https://gitee.com/y_project/RuoYi-Vue 0.1:验证码生成流程图 0.2:验证码生成时序图 0.3:验证码的配置项 ...

  5. python生成激活码

    github上的小练习啦,生成激活码,并且保存到mysql数据库中,代码: #coding=utf-8 import uuid import pymysql ''' uuid库生成128位全局唯一标识 ...

  6. C# C/S 图片验证码功能源码

    为什么80%的码农都做不了架构师?>>>    运行效果如图 用法如下:          ///   <summary>          ///  显示验证码     ...

  7. 解决PHP生成校验码时“图像因其本身有错无法显示”的错误

    2019独角兽企业重金招聘Python工程师标准>>> 今天使用http://crazymud.iteye.com/blog/452293给出的代码进行PHP生成校验码功能的实现,发 ...

  8. eoLinker-API_Shop_验证码识别与生成类API调用的代码示例合集:六位图片验证码生成、四位图片验证码生成、简单验证码识别等...

    以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 六位图片验证码生成:包括纯数字.小写字母.大写字母.大小写混合.数 ...

  9. 结合shiro 的图形验证码生成

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 在做用户登录功能时,很多时候都需要验证码支持,验证码的目的是为了防止机器人模拟真实用户登录而恶意访问 ...

最新文章

  1. 人工智能不再是未来,机器学习靠什么来实现?
  2. git/ TortoiseGit如何使用证书登录
  3. 百分点大数据技术团队:乘风破浪 海外数据中台项目实践
  4. 实验四 恶意代码
  5. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨0.56%
  6. [转]MSP430学习心得---时钟
  7. 关于清理「死代码」,我有一些好方法推荐给你
  8. web多线程之webworkers
  9. python数据可视化仪表盘,Python 数据可视化?
  10. python版代码整洁之道
  11. Arcgis(一) 制作全国行政区shp文件(精确到县级)
  12. 无法启动iis express web 服务器
  13. CSS Sprite(CSS雪碧图)
  14. 周立功linux内核,极速搭建周立功IMX287A ARM Linux开发环境
  15. 深度学习(一)最通俗易懂的 Transformer
  16. linux内核使用scons构建,使用scons软件构建工具
  17. Latex论文排版——图片
  18. 计算机中的三类总线是什么,计算机的三类总线分别是什么?
  19. jmeter文件上传
  20. ftp服务器维护,ftp服务器 - LNMP一键安装包

热门文章

  1. java单链表反转(头插法)详解
  2. Ericsson open-sources OpenWebRTC and Bowser for iOS; Intel releases IoT developer kit
  3. 菜鸟入门--摄影术语
  4. 今日锋评:愚人节的秘密
  5. PHP实现文件上传功能实例代码
  6. MR21修改物料标准价
  7. 【办公协作软件】万彩办公大师教程丨图片OCR工具的应用
  8. 【Opencv】基于python-opencv的CV2实现图片OCR前的扫描摆正OCR识别【代码实现】
  9. 三个牛人教你怎么高效阅读论文
  10. 函数——求三个数的最大值