C#利用QrCode.Net生成二維碼,下面放文字


項目地址:https://archive.codeplex.com/?p=qrcodenet

QrCode使用方法:

新建項目添加對類庫的引用,然后引入Gma.QrCodeNet.Encoding命名空間。

下面直接是實現方式:

/// <summary>
        /// 創建二維碼
        /// </summary>
        /// <param name="content"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static byte[] CreateBytes(string content, string name)
        {
            var bytes = qrCoderService.CreateQrCode(content);
            var memory = new MemoryStream(bytes);

            ImageUtility util = new ImageUtility();
            var bitmap = util.InsertWords(new Bitmap(new Bitmap(memory)), name);

            using (MemoryStream stream = new MemoryStream())
            {
                bitmap.Save(stream, ImageFormat.Png);
                byte[] data = new byte[stream.Length];
                stream.Seek(0, SeekOrigin.Begin);
                stream.Read(data, 0, Convert.ToInt32(stream.Length));

                return data;
            }
        }

 

public class ImageUtility
    {
        /// <summary>
        /// 二維碼下面加上文字
        /// </summary>
        /// <param name="qrImg">QR圖片</param>
        /// <param name="content">文字內容</param>
        /// <param name="n"></param>
        /// <returns></returns>
        public Bitmap InsertWords(Bitmap qrImg, string content = "")
        {
            Bitmap backgroudImg = new Bitmap(qrImg.Width, qrImg.Height);
            backgroudImg.MakeTransparent();
            Graphics g2 = Graphics.FromImage(backgroudImg);
            g2.Clear(Color.Transparent);
            //畫二維碼到新的面板上
            g2.DrawImage(qrImg, 0, 0);

            if (!string.IsNullOrEmpty(content))
            {
                FontFamily fontFamily = new FontFamily("楷體");
                Font font1 = new Font(fontFamily, 20f, FontStyle.Bold, GraphicsUnit.Pixel);

                //文字長度 
                int strWidth = (int)g2.MeasureString(content, font1).Width;
                //總長度減去文字長度的一半  (居中顯示)
                int wordStartX = (qrImg.Width - strWidth) / 2;
                int wordStartY = qrImg.Height - 30;

                g2.DrawString(content, font1, Brushes.Black, wordStartX, wordStartY);
            }

            g2.Dispose();
            return backgroudImg;
        }
    }

 


免責聲明!

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



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