本文介绍.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 and draw string

以上是官方给的资料。


No.1 项目引入ZKWeb.System.Drawing

NuGet引入包,不会的自己百度。


No.2 简单的验证码生成

int codeW = 80;
int codeH = 30;
int fontSize = 16;
Random rnd = new Random();
//颜色列表,用于验证码、噪线、噪点
Color[] color = { Color.Black, Color.Red, Color.Blue, Color.Green, Color.Orange, Color.Brown, Color.Brown, Color.DarkBlue };
//字体列表,用于验证码
string[] font = { "Times New Roman" };
//验证码的字符集,去掉了一些容易混淆的字符 //写入Session、验证码加密
//WebHelper.WriteSession("session_verifycode", Md5Helper.MD5(chkCode.ToLower(), 16));
//创建画布
Bitmap bmp = new Bitmap(codeW, codeH);
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.White);
//画噪线
for (int i = 0; i < 1; i++)
{int x1 = rnd.Next(codeW);int y1 = rnd.Next(codeH);int x2 = rnd.Next(codeW);int y2 = rnd.Next(codeH);Color clr = color[rnd.Next(color.Length)];g.DrawLine(new Pen(clr), x1, y1, x2, y2);
}
//画验证码字符串
for (int i = 0; i < chkCode.Length; i++)
{string fnt = font[rnd.Next(font.Length)];Font ft = new Font(fnt, fontSize);Color clr = color[rnd.Next(color.Length)];g.DrawString(chkCode[i].ToString(), ft, new SolidBrush(clr), (float)i * 18, (float)0);
}
//将验证码图片写入内存流,并将其以 "image/Png" 格式输出
MemoryStream ms = new MemoryStream();
try
{bmp.Save(ms, ImageFormat.Png);return ms.ToArray();
}
catch (Exception)
{return null;
}
finally
{g.Dispose();bmp.Dispose();
}


No.3 发布部署运行

直接上图,不会的看这里http://www.cnblogs.com/niao/p/6057860.html


注意:验证码Windows下生成无压力,我用的Ubuntu 14,需要安装gdi包,运行日志中会有提示。

安装方法:

Ubuntu 16.04:

apt-get install libgdiplus
cd /usr/lib
ln -s libgdiplus.so gdiplus.dll

Fedora 23:

dnf install libgdiplus
cd /usr/lib64/
ln -s libgdiplus.so.0 gdiplus.dll

CentOS 7:

yum install autoconf automake libtool
yum install freetype-devel fontconfig libXft-devel
yum install libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel
yum install glib2-devel cairo-devel
git clone https://github.com/mono/libgdiplus
cd libgdiplus
./autogen.sh
make
make install
cd /usr/lib64/
ln -s /usr/local/lib/libgdiplus.so gdiplus.dll

88..

转载于:https://www.cnblogs.com/webenh/p/6185084.html

.Net Core 之 图形验证码 本文介绍.Net Core下用第三方ZKWeb.System.Drawing实现验证码功能。...相关推荐

  1. .net core 使用 ZKWeb.system.drawing 在centos下使用gdi 画图

    使用ZKWeb.system.drawing 背景 system.Drawing.Common 和 ZKWeb 的比较 项目中引用ZKWeb CentOS 中环境搭建 CentOS 字体库安装 1.拷 ...

  2. .Net Core上用于代替System.Drawing的类库

    目前.Net Core上没有System.Drawing这个类库,想要在.Net Core上处理图片得另辟蹊径. 微软给出了将来取代System.Drawing的方案,偏向于使用一个单独的服务端进行各 ...

  3. ASP.NET Core 跨平台图形验证码实现

    概述 几年前,大部分网站.论坛之类的是没有验证码的,因为对于一般用户来说验证码只是增加了用户的操作,降低了用户的体验.但是后来各种灌水机器人.投票机器人.恶意注册机器人层出不穷,大大增加了网站的负担同 ...

  4. [Hei.Captcha] Asp.Net Core 跨平台图形验证码实现

    写在前面 说起来比较丢脸.我们有个手机的验证码发送逻辑需要使用验证码,这块本来项目里面就有验证码绘制逻辑,.Net Framework的,使用的包是System.Drawing,我把这验证码绘制逻辑复 ...

  5. 网络管理 之 Fedora Core 网络配置工具system-config-network介绍

    作者:北南南北 来自:LinuxSir.Org 提要:本文主要介绍Fedora Core 系统中的网络配置工具system-config-network,帮助初学者如何学会配置网络,以及如何设置非路由 ...

  6. .Net Core 分布式微服务框架介绍 - Jimu

    .Net Core 分布式微服务框架介绍 - Jimu 系列文章 [原文] .Net Core 分布式微服务框架介绍 - Jimu [原文] .Net Core 分布式微服务框架 - Jimu 添加 ...

  7. iris鸢尾花数据集最全数据分析写在前面本文介绍数据预处理

    ![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy9hNENBY3JTUWw5ZmliUG1xbW ...

  8. dommel mysql_.Net Core AA.FrameWork应用框架介绍

    开发多年,一直在从社区获取开源的便利,也深感社区力量的重要性,今天开源一个应用基础框架AA.FrameWork,也算是回馈社区,做出一点点贡献,希望能够帮助类似当年入行的我. AA.FrameWork ...

  9. 如何通过牛顿方法解决Logistic回归问题 By 机器之心2017年8月09日 16:30 本文介绍了牛顿方法(Newton's Method),以及如何用它来解决 logistic 回归。log

    如何通过牛顿方法解决Logistic回归问题 By 机器之心2017年8月09日 16:30 本文介绍了牛顿方法(Newton's Method),以及如何用它来解决 logistic 回归.logi ...

最新文章

  1. 用C语言扩展PHP功能
  2. Star 10.9K!这份Google面试攻略,牛逼了!
  3. MVC-Razor(3)
  4. 介绍一种很棒的wince 如何替换系统声音的方法
  5. 算法导论之贪心算法(Huffman编码和拟阵)
  6. Python编程基础:第五十三节 匿名函数Lambda Function
  7. c打开指定路径文件_C++ 读取指定路径下所有的文件 (C++ get the list of files in a directory)...
  8. jenkins配置记录(2)--代码发布流程
  9. oracle apex触发器,triggers - 插入之前/更新Apex触发器之前,测试覆盖率失败 - 堆栈内存溢出...
  10. 量子计算机全世界最新进展,谷歌或于明年公布全球最强大量子计算机
  11. 日出时的画面_如何拍摄日出日落,老摄影家近30年创作经验分享
  12. joomla2.5 常用组件
  13. 《机器视觉算法与应用》第3章 机器视觉算法之光学字符识别(OCR)——学习笔记
  14. 编译原理第三章学习总结
  15. IDEA如何导入MySQL驱动
  16. matlab软件topsis分析,基于AHP—TOPSIS的渗透测试工具的综合评价方法与流程
  17. 阳明心学在敏捷开发中的应用
  18. 杭州毕业生就业创业补贴全攻略
  19. CSS媒体查询(@media)全面解析
  20. echarts图表动态化

热门文章

  1. VB的KeyAscii
  2. 从零学ELK系列(四):Docker安装Elasticsearch(超详细图文教程)
  3. 谁是“顶会狂魔”?周明、张潼等上榜,清华第四,北大第六 | 2018 ML和NLP顶会论文统计出炉...
  4. 上岗乌镇大会安防的智慧警眼“云镜”,是谁家的AR眼镜?
  5. 当心币圈高仿号!也别指望AI,它有心无力
  6. Gremlin发布混沌工程实验平台免费版,开放了“故障即服务”功能
  7. 磁性材料 可实现能量无接触转化
  8. Oracle建表添加数据
  9. iOS - Swift 与 Objective-C 互相操作
  10. 利用更改Windows7粘滞键漏洞破解登录密码