WPF 使用QRCoder生成二维码

Posted czly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF 使用QRCoder生成二维码相关的知识,希望对你有一定的参考价值。

vs中使用Nuget获取QRCoder

技术分享图片

窗体中添加按钮和Iage

<Window x:Class="QRCoderTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:QRCoderTest"
        xmlns:qr="clr-namespace:QRCoder;assembly=QRCoder"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition  Width="0.3*"/>
            <ColumnDefinition Width="0.7*"/>
        </Grid.ColumnDefinitions>
        <Button Content="Button" HorizontalAlignment="Left" Margin="51,90,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
        <Image x:Name="img" Grid.Column="1"/>
    </Grid>
</Window>

后台代码

 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:WorklyMES图片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。

运行程序

技术分享图片

生成成功。

以上是关于WPF 使用QRCoder生成二维码的主要内容,如果未能解决你的问题,请参考以下文章

C# 代码生成二维码方法及代码示例(QRCoder)

建议收藏备用:.net core使用QRCoder生成普通二维码和带Logo的二维码详细使用教程,源码已更新至开源模板

C#中利用QRCoder包生成二维码并显示

C#中利用QRCoder包生成二维码并显示

Asp.Net Core 生成二维码(NuGet使用QRCoder)

QRCoder生成二维码