当前位置: 移动技术网 > IT编程>开发语言>.net > C# 生成二维码(带Logo)

C# 生成二维码(带Logo)

2019年06月04日  | 移动技术网IT编程  | 我要评论

邪君蕊飘,龙域bt,我们结婚了20110625

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);
            }
        }

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网