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