This article introduces the use of third-party ZKWeb.System.Drawing to implement the verification code function under .Net Core.
Systems passed the test:
Windows 8.1 64bit
Ubuntu Server 16.04 LTS 64bit
Fedora 24 64bit
CentOS 7.2 64bit
Can achieve the following functions:
Open jpg, bmp, ico, png
Save jp g, bmp, ico , png
Resize image
Draw graphics with brush and pen
Open font and draw string
The above is the official information.
No.1 project introduces ZKWeb.System.Drawing
NuGet import package, which Baidu does not know how to do.
No.2 Simple verification code generation
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 Release deployment and operation
Directly above the picture, if you don’t know, look here. Net Core Ubuntu 14.04 deployment process (detailed picture and text explanation)
Note: There is no pressure to generate the verification code under Windows. I use Ubuntu 14 and need to install the gdi package. There will be a prompt in the operation log.
Installation method:
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
The above is the .Net Core introduced by the editor to you Next, use ZKWeb.System.Drawing to implement the verification code function (graphical verification code). I hope it will be helpful to everyone. If you have any questions, please leave me a message and the editor will reply to you in time. I would also like to thank you all for your support of the PHP Chinese website!