本文是利用ZXing.Net在WPF中生成条形码,二维码的小例子,仅供学习分享使用,如有不足之处,还请指正。
什么是ZXing.Net?
ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。而ZXing.Net是ZXing的端口之一。
- 在工程中引用ZXing.Net
在项目中,点击项目名称右键–>管理NuGet程序包,打开NuGet包管理器窗口,进行搜索下载即可,如下图所示:
废话不多说,直接上代码
using System.Windows;
using System.Windows.Media.Imaging;
using System.IO;
using ZXing;
using ZXing.QrCode;
using System.Drawing;
using System.Drawing.Imaging;
namespace 二维码
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
if (txt.Text != "")//txt文本框是界面中的输入框
{
img1.Source = Getbitmapimage(txt.Text);//img1界面中的展示图片
}
else
{
MessageBox.Show("请输入要生成的内容", "温馨提示");
}
}
private BitmapImage Getbitmapimage(string v)
{
QrCodeEncodingOptions opt = new QrCodeEncodingOptions//初始化
{
DisableECI = true,
CharacterSet = "utf-8",
Width = 198,
Height = 156
};
BarcodeWriter bw = new BarcodeWriter
{
Options = opt,
Format = BarcodeFormat.QR_CODE
};
MemoryStream ms = new MemoryStream();
Bitmap bit = bw.Write(v);
bit.Save(ms, ImageFormat.Png);
BitmapImage bimp = new BitmapImage();
bimp.BeginInit();
bimp.StreamSource = ms;
bimp.EndInit();
return bimp;
}
}
}
以及运行截图
界面用到了一个输入框,一个border,一个image框,以及一个按钮。
如果需要生成的同时保存下来图片只需要这样加这样两句话(这里注意先在同级目录下创建文件夹images):
添加这两句话:
到这里来看效果:
打开文件夹查看
最后,就是发布了
在项目目录中点右键,然后发布>一直下一步和确认>直到最后成功。
在publish文件夹中点击setup安装之后就可以运行啦。