C#生成带生成带logo的二维码的二维码
带logo的二维码生成分为两步骤:首先根据输入的内容生成二维码图片,然后读取本地的logo图片,通过图片处理生成带logo
的二维码。
生成的二维码效果如下:
下面直接贴出二维码生成类 QRCodeHelper.cs ,直接调用 CreateQRCodeWithLogo 方法,传入相应参数返回bitmap类型的
数据,直接将返回的数据绑定到图片控件,如果是web可以先将图片保存到服务器指定地址在获取显示
/// <summary>
/// 生成带logo二维码
/// </summary>
public class QRCodeHelper
{/// <summary>
/// 创建二维码
/// </summary>
/// <param name="content"></param>
/// <param name="size"></param>
/// <returns></returns>
public static Bitmap Create(string content)
{
try
{
//var options = new QrCodeEncodingOptions
//{
// DisableECI = true,
// CharacterSet = "UTF-8",
// Width = size,
// Height = size,
// Margin = 0,
// ErrorCorrection = ErrorCorrectionLevel.H
//};
//var writer = new BarcodeWriter();
//writer.Format = BarcodeFormat.QR_CODE;
//writer.Options = options;
//var bmp = writer.Write(content);
//return bmp;
QRCodeEncoder qRCodeEncoder = new QRCodeEncoder();
qRCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//设置二维码编码格式
qRCodeEncoder.QRCodeScale = 4;//设置编码测量度
qRCodeEncoder.QRCodeVersion = 7;//设置编码版本
qRCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//设置错误校验
Bitmap image = qRCodeEncoder.Encode(content);
return image;
}
catch (Exception ex)
{
return null;
}
}
/// <summary>
/// 获取本地图片
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
private static Bitmap GetLocalLog(string fileName)
{
Bitmap newBmp = new Bitmap(fileName);
//Bitmap bmp = new Bitmap(newBmp);
return newBmp;
}
/// <summary>