vs中使用Nuget获取QRCoder
窗体中添加按钮和Iage
后台代码
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { CreateQR(100,"aaa123!ly是是是@#¥%……",System.Drawing.Color.Black,System.Drawing.Color.White,new Bitmap(@"E:\Work\ly\MES图片\1.png")); } private void CreateQR(int pixelsPerModule, string info, System.Drawing.Color qrColor, System.Drawing.Color qrBackgroundColor, Bitmap logo, int iconSizePercent = 15, int iconBorderWidth = 6) { QRCodeGenerator qrGenerator = new QRCodeGenerator(); QRCodeData qrCodeData = qrGenerator.CreateQrCode(info, QRCodeGenerator.ECCLevel.Q); QRCode qrCode = new QRCode(qrCodeData); Bitmap qrCodeImage = qrCode.GetGraphic(pixelsPerModule, qrColor, qrBackgroundColor, logo, iconSizePercent, iconBorderWidth, true); IntPtr hBitmap = qrCodeImage.GetHbitmap(); ImageSource wpfBitmap = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); img.Source = wpfBitmap; } }
QRCoder生成的是Bitmap,在WPF中需要转换为ImageSource。
运行程序
生成成功。