使用NuGget添加 ThoughtWorks.QRCode
在项目引用:
using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;
二维码生成:
/// <summary>
/// 生成二维码
/// </summary>
/// <param name="strData">要生成的文字或者数字,支持中文。</param>
/// <param name="qrEncoding">三种尺寸:BYTE ,ALPHA_NUMERIC,NUMERIC</param>
/// <param name="level">大小:L M Q H</param>
/// <param name="version">版本:如 8</param>
/// <param name="scale">比例:如 4</param>
/// <returns></returns>
public ActionResult Choose(string strData, string qrEncoding, string level, int version, int scale)
{
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
qrCodeEncoder.QRCodeBackgroundColor = Color.White;//设置二维码背景颜色
qrCodeEncoder.QRCodeForegroundColor = Color.Black;//设置二维码前景色
string encoding = qrEncoding;
switch (encoding)
{
case "Byte":
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
break;
case "AlphaNumeric":
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC;
break;
case "Numeric":
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC;
break;
default:
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
break;
}qrCodeEncoder.QRCodeScale = scale;
qrCodeEncoder.QRCodeVersion = version;
switch (level)
{
case "L":
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
break;
case "M":
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
break;
case "Q":
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q;
break;
default:
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;
break;
}//文字生成图片
Image image = qrCodeEncoder.Encode(strData, Encoding.UTF8);Bitmap bitmap = new Bitmap(image.Width + 3, image.Height + 3);
Graphics g = Graphics.FromImage(bitmap);
g.Clear(Color.White);
g.DrawRectangle(new Pen(Color.White), new Rectangle(0, 0, bitmap.Width, bitmap.Height));
g.DrawImage(image, new PointF(2, 2));string filename = DateTime.Now.ToString("yyyyMMddHHmmss");
string filepath = Server.MapPath(@"/Upload/" + filename + ".png");
bitmap.Save(filepath, System.Drawing.Imaging.ImageFormat.Png);return Content(@"/Upload/" + filename + ".png");
}
二维码解析:
public ActionResult QRCodeDecoderUtil(string bitmaps)
{
string fileUrl = Server.MapPath(@"/Upload/" + bitmaps);
Bitmap myBitmap = new Bitmap(Image.FromFile(fileUrl));
QRCodeDecoder decoder = new QRCodeDecoder();
string decodedString = decoder.decode(new
QRCodeBitmapImage(myBitmap),Encoding.UTF8);
return Content(decodedString);
}
最后
以上就是超帅糖豆最近收集整理的关于.NET 二维码生成的全部内容,更多相关.NET内容请搜索靠谱客的其他文章。
发表评论 取消回复