示例#1
0
        /// <summary>
        /// 创建二维码
        /// </summary>
        /// <param name="param">二维码参数</param>
        protected override byte[] Create(QRCodeParam param)
        {
            using var bitmap = GetBitmap(param);
            if (string.IsNullOrWhiteSpace(param.Logo))
            {
                using (var ms = new MemoryStream())
                {
                    bitmap.Save(ms, ImageFormat.Png);
                    return(ms.ToArray());
                }
            }

            return(ImageUtil.MergeImage(bitmap, new Bitmap(param.Logo)));
        }
        /// <summary>
        /// 创建二维码
        /// </summary>
        /// <param name="param">二维码参数</param>
        /// <returns></returns>
        protected override byte[] Create(QRCodeParam param)
        {
            QRCodeData data = _generator.CreateQrCode(param.Content, _level);

            QC.QRCode qrcode = new QC.QRCode(data);
            using (var bitmap = qrcode.GetGraphic(param.Size, param.Foreground, param.Background, GetLogo(), iconBorderWidth: 20))
            {
                using (var ms = new MemoryStream())
                {
                    bitmap.Save(ms, ImageFormat.Png);
                    return(ms.ToArray());
                }
            }
        }
示例#3
0
        /// <summary>
        /// 获取二维码图片
        /// </summary>
        /// <param name="param">二维码参数</param>
        private Bitmap GetBitmap(QRCodeParam param)
        {
            var bitmapBarcodeWriter = new BarcodeWriter <Bitmap>
            {
                Format  = BarcodeFormat.QR_CODE,
                Options = new QrCodeEncodingOptions
                {
                    CharacterSet    = "UTF-8",
                    ErrorCorrection = _level,
                    Margin          = param.DrawBorder ? 2 : 0,
                    Width           = param.Size,
                    Height          = param.Size,
                },
                Renderer = new BitmapRenderer
                {
                    Foreground = Color.FromName(param.Foreground.Name),
                    Background = Color.FromName(param.Background.Name)
                }
            };

            return(bitmapBarcodeWriter.Write(param.Content));
        }