C# 生成二维码(带Logo)
程序员文章站
2022-03-20 13:17:22
C# 生成二维码(带Logo) 第一种方式 我们需要引用 ThoughtWorks.QRCode.dll 生成带logo二维码(framework4.0以上) 下载地址:https://pan.baidu.com/s/1mBjd7PHB-Klybx18Z5Og8A 提取码: ugwa ///
c# 生成二维码(带logo)
第一种方式
我们需要引用 thoughtworks.qrcode.dll 生成带logo二维码(framework4.0以上)
下载地址:https://pan.baidu.com/s/1mbjd7phb-klybx18z5og8a
提取码: ugwa
/// <summary> /// 创建二维码 /// </summary> /// <param name="content">内容</param> /// <returns></returns> public static bitmap createqrcode(string content) { try { qrcodeencoder qrencoder = new qrcodeencoder(); //二维码类型 qrencoder.qrcodeencodemode = qrcodeencoder.encode_mode.byte; //二维码尺寸 qrencoder.qrcodescale = 4; //二维码版本 qrencoder.qrcodeversion = 7; //二维码容错程度 qrencoder.qrcodeerrorcorrect = qrcodeencoder.error_correction.m; //字体与背景颜色 qrencoder.qrcodebackgroundcolor = color.white; qrencoder.qrcodeforegroundcolor = color.black; //utf-8编码类型 bitmap qrcode = qrencoder.encode(content, encoding.utf8); return qrcode; } catch (exception) { return null; } }
/// <summary> /// 生成带logo二维码 /// </summary> /// <returns></returns> public static bitmap createqrcodewithlogo(string content, string logopath) { //生成二维码 bitmap qrcode = createqrcode(content); //生成logo bitmap logo = new bitmap(logopath); //合成 imageutility util = new imageutility(); bitmap finalimage = util.mergeqrimg(qrcode, logo); return finalimage; }
/// <summary> /// 保存二维码 /// </summary> /// <param name="qrcode">二维码图片</param> /// <param name="savepath">保存路径</param> /// <param name="qrcodename">图片名称</param> public static void saveqrcode(bitmap qrcode, string savepath, string qrcodename) { if (!directory.exists(savepath)) { directory.createdirectory(savepath); } qrcode.save(path.combine(savepath, qrcodename + ".png"), imageformat.png); qrcode.dispose(); }
第二种方式
我们需要引用 gma.qrcodenet.encoding.net45.dll (framework4.5以上)支持中文
下载地址:https://pan.baidu.com/s/1tkmwdwhyhtp_fjntyhknsq
提取码: eqjh
// <summary> /// 生成保存二维码(framework4.5以上) /// </summary> /// <param name="codestring"></param> /// <param name="picname"></param> /// <param name="filepath"></param> public static void createqrcode(string codestring, string picname, string filepath) { qrencoder qrencoder = new qrencoder(errorcorrectionlevel.h); qrcode code = new qrcode(); qrencoder.tryencode(codestring, out code); const int modelsizeinpixels = 4; graphicsrenderer render = new graphicsrenderer(new fixedmodulesize(modelsizeinpixels, quietzonemodules.two) , brushes.black, brushes.white); if (!directory.exists(filepath)) { directory.createdirectory(filepath); } string filename = filepath + "\\" + picname + ".png"; using (filestream stream = new filestream(filename, filemode.create)) { render.writetostream(code.matrix, imageformat.png, stream); } }