注意 :需要使用以下库文件
using ThoughtWorks.QRCode.Codec;
using ZXing;
using ZXing.Common;
using ZXing.QrCode;
具体实现如下所示:
帮助类一:
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using ThoughtWorks.QRCode.Codec;
using ZXing;
using ZXing.Common;
using ZXing.QrCode;
namespace KK.BARCODE.HELPER
{
/// <summary>
/// 二维码:在水平和垂直方向的二维空间存储信息的条形码。
///常用码制:PDF417、QR Code、Code 49、Code 16K、Code One等
/// </summary>
public class QrCodeHelper
{
private static QrCodeHelper instance;
public static QrCodeHelper Instance
{
get
{
if (instance == null) instance = new QrCodeHelper();
return QrCodeHelper.instance;
}
}
/// <summary>
/// 使用ThoughtWorks生成二维码图片
/// </summary>
/// <param name="imgPath">图片路径</param>
/// <param name="codeContent">内容信息</param>
/// <returns></returns>
public string NewQRCodeByThoughtWorks(string imgPath, string codeContent, ImageFormat imgType)
{
QRCodeEncoder encoder = new QRCodeEncoder();
encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//编码方式(注意:BYTE能支持中文,ALPHA_NUMERIC扫描出来的都是数字)
encoder.QRCodeScale = 4;//大小(值越大生成的二维码图片像素越高)
encoder.QRCodeVersion = 0;//版本(注意:设置为0主要是防止编码的字符串太长时发生错误)
encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//错误效验、错误更正(有4个等级)
encoder.QRCodeBackgroundColor = Color.Yellow;
encoder.QRCodeForegroundColor = Color.Green;
Bitmap bcodeBitmap = encoder.Encode(codeContent);
bcodeBitmap.Save(imgPath, imgType);//@"E:\test.png" ImageFormat.Png
bcodeBitmap.Dispose();
return imgPath;
}
/// <summary>
/// 使用ZxingNet生成二维码图片
/// </summary>
/// <param name="imgPath">图片路径</param>
/// <param name="codeContent">内容信息</param>
/// <param name="width"></param>
/// <param name="height"></param>
/// <param name="imgType">ImageFormat imgType</param>
/// <param name="BarcodeFormat barcodeFormat">barcodeFormat</param>