.Net Core 下使用ZKWeb.System.Drawing實現驗證碼功能

來源:互聯網
上載者:User
本文介紹.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 發布部署運行

直接,不會的看這裡.Net Core 之 Ubuntu 14.04 部署過程(圖文詳解)

注意:驗證碼Windows下產生無壓力,我用的Ubuntu 14,需要安裝gdi包,作業記錄中會有提示。

安裝方法:

Ubuntu 16.04:

apt-get install libgdipluscd /usr/libln -s libgdiplus.so gdiplus.dll

Fedora 23:

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

CentOS 7:

yum install autoconf automake libtoolyum install freetype-devel fontconfig libXft-develyum install libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-develyum install glib2-devel cairo-develgit clone https://github.com/mono/libgdipluscd libgdiplus./autogen.shmakemake installcd /usr/lib64/ln -s /usr/local/lib/libgdiplus.so gdiplus.dll

以上所述是小編給大家介紹的.Net Core 下使用ZKWeb.System.Drawing實現驗證碼功能(圖形驗證碼),希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對topic.alibabacloud.com的支援!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.