本文主要是介绍C# 二维码 ThoughtWorks.QRCode.dll,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原文出处:https://www.cnblogs.com/cang12138/p/5209669.html (已做有补充)
延伸阅读:使用ThoughtWorks.QRCode 生成二维码(带logo)
ThoughtWorks.QRCode.dll:
1、ThoughtWorks.QRCode.dll
2、通过 NuGet 添加
后台代码:
using System;
using System.Drawing;
using System.Text;
using ThoughtWorks.QRCode.Codec;namespace ConsoleTest
{public class Test{#region 生成二维码/// <summary>/// 生成二维码/// </summary>/// <param name="number"></param>/// <returns></returns>private static string QRCode(){System.Drawing.Bitmap bt;string enCodeString = "http://www.baidu.com";QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//编码方式(注意:BYTE能支持中文,ALPHA_NUMERIC扫描出来的都是数字)qrCodeEncoder.QRCodeScale = 4;//大小(值越大生成的二维码图片像素越高)qrCodeEncoder.QRCodeVersion = 0;//版本(注意:设置为0主要是防止编码的字符串太长时发生错误)qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//错误效验、错误更正(有4个等级)qrCodeEncoder.QRCodeBackgroundColor = Color.Yellow;//背景色qrCodeEncoder.QRCodeForegroundColor = Color.Green;//前景色bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);string filename = "code";string file_path = AppDomain.CurrentDomain.BaseDirectory + "QRCode\\";string codeUrl = file_path + filename + ".jpg";//根据文件名称,自动建立对应目录if (!System.IO.Directory.Exists(file_path))System.IO.Directory.CreateDirectory(file_path);bt.Save(codeUrl);//保存图片return codeUrl;}#endregion}
}
二维码效果:
补充:
将二维码转换成网页可以显示的数据
/// <summary>/// 将二维码转换成网页可以显示的数据/// </summary>/// <param name="qrcode"></param>/// <returns></returns>public static string GetQrcodeImageData(string qrcode){QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;qrCodeEncoder.QRCodeScale = 12;qrCodeEncoder.QRCodeVersion = 2;qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;var bmp = qrCodeEncoder.Encode(qrcode);byte[] b = null;using (MemoryStream stream = new MemoryStream()){bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);//将图像以指定的格式存入缓存内存流b = new byte[stream.Length];stream.Position = 0;stream.Read(b, 0, Convert.ToInt32(b.Length));}return "data:image/jpeg;base64," + Convert.ToBase64String(b);}
这篇关于C# 二维码 ThoughtWorks.QRCode.dll的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!