ホームページ  >  記事  >  バックエンド開発  >  .Net Core グラフィック検証コード

.Net Core グラフィック検証コード

高洛峰
高洛峰オリジナル
2017-05-26 13:32:012953ブラウズ

この記事では、サードパーティの ZKWeb.System.Drawing を使用して .Net Core で検証コード機能を実装する方法を紹介します。

通过测试的系统:
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 インポート パッケージを導入していますが、Baidu はその方法を知りません。

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 リリースの展開と運用

上の画像にアクセスしてください。分からない場合は、ここを参照してください www.cnblogs.com/niao/p/6057860.html

.Net Core グラフィック検証コード

注: Windows では検証コードを生成する必要はありません。Ubuntu 14 を使用しているため、実行ログにプロンプ​​トが表示されます。

インストール方法:

Ubuntu 16.04:

apt-get install libgdiplus
cd /usr/libln -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

【関連推奨事項】

1. .NET Core構成ファイルのロードと構成データのDIインジェクション

2 .NET Core CLI ツールのドキュメント dotnet-publish

3. .Net Core の ZKEACMS の詳細な紹介

4. .net MVC のフォーム検証サンプル コードを共有する

5.コア http リクエストを行うにはどうすればよいですか?

6.

CentOS 上で ZKEACMS を実行するチュートリアルの例

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。