C# 生成二維碼(帶Logo)


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;
        }
生成帶Logo的二維碼
/// <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);
            }
        }
生成並保存二維碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM