1、下载并导入ZXing包,不会下载的同学可以参考https://blog.csdn.net/qq_37243144/article/details/107357638
2、新建帮助类
using System;
using System.Drawing;
using System.Windows;
using System.Windows.Media;
using ZXing;
using ZXing.Common;
using ZXing.QrCode;
using ZXing.QrCode.Internal;
namespace Util
{
class BarcodeHelper
{
public static ImageSource GetQRCodeImage(string asset, int size)
{
Bitmap bm = CreateQRCode(asset, size);
IntPtr hBitmap = bm.GetHbitmap();
ImageSource WpfBitmap = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
return WpfBitmap;
}
public static Bitmap CreateQRCode(string asset, int size)
{
EncodingOptions options = new QrCodeEncodingOptions
{
ErrorCorrection = ErrorCorrectionLevel.H,
DisableECI = true,
CharacterSet = "UTF-8",
Width = size,
Height = size
};
BarcodeWriter writer = new BarcodeWriter();
writer.Format = BarcodeFormat.QR_CODE;
writer.Options = options;
return writer.Write(asset);
}
}
}
3、测试
using System.Windows;
using Util;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Linq;
namespace Test
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
barcode.Source = BarcodeHelper.GetQRCodeImage("adc", 120);
}
}
}
测试效果图:
用微信扫码,将看到abc的字样