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:\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。

运行程序

生成成功。

原文地址:https://www.cnblogs.com/czly/p/9923226.html

时间: 2024-10-22 16:25:35

WPF 使用QRCoder生成二维码的相关文章

QRCoder生成二维码

QRCoder是一个简单的生成二维码的库,用C#.NET编写,他是开源的MIT-license. //WIFI二维码 //WiFi generator = new WiFi("My-WiFis-Name", "s3cr3t-p4ssw0rd", WiFi.Authentication.WPA); //string payload = generator.ToString(); //邮件二维码 //Mail generator = new Mail("[em

C# WPF使用ZXing生成二维码ImageSource

1.在http://zxingnet.codeplex.com/站点上下载ZXing .Net的第三方库 2.下载后解压可以看到有针对不同.Net版本的dll文件,在你的工程中引用正确的dll 3.然后再你的工程中引用System.Drawing程序集 4.在你需要生成二维码的Window中,加入一下代码 // 回收对象 [DllImport("gdi32")] static extern int DeleteObject(IntPtr o); /** * 创建二维码图片 */ pri

C# QRCoder生成二维码

public void CreateQrCode(HttpContext context) { string strCodeUrl = "https://www.baidu.com"; QRCodeGenerator qrGenerator = new QRCodeGenerator(); QRCodeData qRCodeData = qrGenerator.CreateQrCode(strCodeUrl, QRCodeGenerator.ECCLevel.Q); QRCode qr

WPF调用zxing生成二维码

1.登录http://zxingnet.codeplex.com/,下载对应.net版本的zxing库 2.引入zxing.dll 3.新建界面控件 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using Sys

C# 生成二维码 QRCoder

string strCode = "二维码内容!"; QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator(); QRCodeData qrCodeData = qrGenerator.CreateQrCode(strCode, QRCodeGenerator.ECCLevel.Q); QRCode qrcode = new QRCode(qrCodeData); Bitmap qrCodeImage = qrcode.Ge

C#利用QrCode.Net生成二维码(Qr码

http://www.cnblogs.com/Soar1991/archive/2012/03/30/2426115.html 现在网上很多应用都是用二维码来分享网址或者其它的信息.尤其在移动领域,二维码更是有很大的应用场景.因为项目的需要,需要在网站中增加一个生成二维码分析网址的功能,在谷歌大幅度抽筋的情况下无奈使用百度.百度N多,找到一些项目,但是可用性不强.(有一个项目是用VS2005开发的,在2010中调试不开.)终于在codeplex上找到一个“神器”,这个“神器”可以很方便的生成二维

C#利用QrCode.Net生成二维码(Qr码)

现在网上很多应用都是用二维码来分享网址或者其它的信息.尤其在移动领域,二维码更是有很大的应用场景.因为项目的需要,需要在网站中增加一个生成二维码分析网址的功能,在谷歌大幅度抽筋的情况下无奈使用百度.百度N多,找到一些项目,但是可用性不强.(有一个项目是用VS2005开发的,在2010中调试不开.)终于在codeplex上找到一个“神器”,这个“神器”可以很方便的生成二维码,速度那是相当的快,并且可支持中文,遵从MIT协议. QrCode.Net是一个使用C#编写的用于生成二维码图片的类库,使用它

Javascript生成二维码(QR)

网络上已经有非常多的二维码编码和解码工具和代码,很多都是服务器端的,也就是说需要一台服务器才能提供二维码的生成.本着对服务器性能的考虑,这种小事情都让服务器去做,感觉对不住服务器,尤其是对于大流量的网站,虽然有服务器端缓存,毕竟需要大量的CPU运算时间,这或多或少也是很大的一块压力.所以就想,有没有一种不靠服务器,就只靠JS就生成二维码呢,毕竟二维码就是一堆黑白点而已.我也没有刻意去找网络上是否已经存在这样的解决方案,而且自己一直想深入分析二维码的生成细节,现有的项目也有这样的需求,于是我自己研

4种方法生成二维码 (js 控制canvas 画出 二维码)

随着网络的迅速发展 发展 发展,二维码的应用将会越来越多.同时很多只是很平凡的二维码,请拿起你的手 把这个二维码 设计起来吧.下面分享了几个非常好的二维码设计.  二维码原理: 二维条码/二维码可以分为堆叠式/行排式二维条码和矩阵式二维条码. 堆叠式/行排式二维条码形态上是由多行短截的一维5条码堆叠而成:矩阵式二维条码以矩阵的形式组成,在矩阵相应元素位置上用“点”表示二进制“1”, 用“空”表示二进制“0”,“点”和“空”的排列组成代码. 最近对二维码产生了兴趣 研究了一下二维码 这里生出的术语