cms_yiqingfangkong/TE.LibPub/Helpers/QRCode/QRCodeHelper.cs

(完整代码) 1KB

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Text;
using ThoughtWorks.QRCode.Codec;

namespace TE.LibPub.Helpers.QRCode
{
    public class QRCodeHelper
    {
        private static string logoImagepath = string.Empty;

        private static Bitmap CreateQR(string content)
        {
            Bitmap bimg;
            var qrEncoder = new QRCodeEncoder
            {
                QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE,
                QRCodeScale = 4,
                QRCodeVersion = 4,
                QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M
            };
            try
            {
                var qrcode = qrEncoder.Encode(content, Encoding.UTF8);
                if (!logoImagepath.Equals(string.Empty))
                {
                    var g = Graphics.FromImage(qrcode);
                    var bitmapLogo = new Bitmap(logoImagepath);
                    const int logoSize = 30; //
                    bitmapLogo = new Bitmap(bitmapLogo, new Size(logoSize, logoSize));
                    var point = new PointF(qrcode.Width / 2 - logoSize / 2, qrcode.Height / 2 - logoSize / 2);
                    g.DrawImage(bitmapLogo, point);
                }
                bimg = qrcode;
            }
            catch (IndexOutOfRangeException ex)
            { bimg = new Bitmap(100, 100); }
            catch (Exception ex)
            { bimg = new Bitmap(100, 100); }
            return bimg;
        }

        public static MemoryStream CreateQRCode(string content)
        {
            var bimg = CreateQR(content);
            var stream = new MemoryStream();
            bimg.Save(stream, ImageFormat.Jpeg);
            return stream;
        }
    }
}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。