Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden Sie ZKWeb.System.Drawing, um die Verifizierungscodefunktion unter .Net Core zu implementieren

Verwenden Sie ZKWeb.System.Drawing, um die Verifizierungscodefunktion unter .Net Core zu implementieren

高洛峰
高洛峰Original
2016-12-20 14:02:131616Durchsuche

In diesem Artikel wird die Verwendung von ZKWeb.System.Drawing eines Drittanbieters zur Implementierung der Bestätigungscodefunktion unter .Net Core vorgestellt.

Systeme, die den Test bestanden haben:

Windows 8.1 64bit
Ubuntu Server 16.04 LTS 64bit
Fedora 24 64bit
CentOS 7.2 64bit

kann das erreichen Folgende Funktionen:

JPG, BMP, ICO, PNG öffnen
JPG, BMP, ICO, PNG speichern
Bildgröße ändern
Grafiken mit Pinsel und Stift zeichnen
Schriftart öffnen und Zeichenfolge zeichnen

Das Obige ist die offizielle Information.

Projekt Nr. 1 führt ZKWeb.System.Drawing ein

NuGet-Importpaket, Baidu weiß nicht, wie es geht.

Nr.2 Einfache Verifizierungscode-Generierung

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();
}

Nr.3 Release-Bereitstellung und -Betrieb

Direkt darüber Bild, wenn Sie es nicht wissen, schauen Sie hier. Net Core Ubuntu 14.04-Bereitstellungsprozess (detailliertes Bild und Text)

.Net Core 下使用ZKWeb.System.Drawing实现验证码功能

Hinweis: Der Bestätigungscode wird unter Windows ohne generiert Druck. Ich verwende Ubuntu 14. Das GDI-Paket muss installiert werden und es wird eine Eingabeaufforderung im laufenden Protokoll angezeigt.

Installationsmethode:

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

Das Obige ist der vom Herausgeber vorgestellte .Net Core , verwenden Sie ZKWeb.System.Drawing, um die Bestätigungscodefunktion (grafischer Bestätigungscode) zu implementieren. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der chinesischen PHP-Website bedanken!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn