WPF 创建二维码
2015-07-30 16:44
330 查看
1.在http://zxingnet.codeplex.com/站点上下载ZXing .Net的第三方库
2.新建一个WPF工程
3.引入zxing.dll
4.添加引用空间
using ZXing.Common;
using ZXing;
using ZXing.QrCode;
5.添加引用System.Drawing
6.添加引用空间
using System.Drawing;
7.在xaml中添加一个Image控件,用于显示二维码,命名为image1.
8.编写生成二维码函数:
// 注销对象方法API
[DllImport("gdi32")]
static extern int DeleteObject(IntPtr o);
/* 创建二维码图片 */
private ImageSource createQRCode(String content, int width, int height)
{
EncodingOptions options;
//包含一些编码、大小等的设置
//BarcodeWriter :一个智能类来编码一些内容的条形码图像
BarcodeWriter write = null;
options = new QrCodeEncodingOptions
{
DisableECI = true,
CharacterSet = "UTF-8",
Width = width,
Height = height,
Margin = 0
};
write = new BarcodeWriter();
//设置条形码格式
write.Format = BarcodeFormat.QR_CODE;
//获取或设置选项容器的编码和渲染过程。
write.Options = options;
//对指定的内容进行编码,并返回该条码的呈现实例。渲染属性渲染实例使用,必须设置方法调用之前。
Bitmap bitmap = write.Write(content);
IntPtr ip = bitmap.GetHbitmap();//从GDI+ Bitmap创建GDI位图对象
//Imaging.CreateBitmapSourceFromHBitmap方法,基于所提供的非托管位图和调色板信息的指针,返回一个托管的BitmapSource
BitmapSource bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(ip, IntPtr.Zero, Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
DeleteObject(ip);
return bitmapSource;
}
9.在xaml中添加一个button,并为button添加click事件
10.在button的click事件中调用生成二维码的函数:
image1.Source = createQRCode("牛逼",250, 250);
11.运行程序,Image控件中显示生成的二维码,用手机扫描,可以得到二维码的内容“牛逼”。
2.新建一个WPF工程
3.引入zxing.dll
4.添加引用空间
using ZXing.Common;
using ZXing;
using ZXing.QrCode;
5.添加引用System.Drawing
6.添加引用空间
using System.Drawing;
7.在xaml中添加一个Image控件,用于显示二维码,命名为image1.
8.编写生成二维码函数:
// 注销对象方法API
[DllImport("gdi32")]
static extern int DeleteObject(IntPtr o);
/* 创建二维码图片 */
private ImageSource createQRCode(String content, int width, int height)
{
EncodingOptions options;
//包含一些编码、大小等的设置
//BarcodeWriter :一个智能类来编码一些内容的条形码图像
BarcodeWriter write = null;
options = new QrCodeEncodingOptions
{
DisableECI = true,
CharacterSet = "UTF-8",
Width = width,
Height = height,
Margin = 0
};
write = new BarcodeWriter();
//设置条形码格式
write.Format = BarcodeFormat.QR_CODE;
//获取或设置选项容器的编码和渲染过程。
write.Options = options;
//对指定的内容进行编码,并返回该条码的呈现实例。渲染属性渲染实例使用,必须设置方法调用之前。
Bitmap bitmap = write.Write(content);
IntPtr ip = bitmap.GetHbitmap();//从GDI+ Bitmap创建GDI位图对象
//Imaging.CreateBitmapSourceFromHBitmap方法,基于所提供的非托管位图和调色板信息的指针,返回一个托管的BitmapSource
BitmapSource bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(ip, IntPtr.Zero, Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
DeleteObject(ip);
return bitmapSource;
}
9.在xaml中添加一个button,并为button添加click事件
10.在button的click事件中调用生成二维码的函数:
image1.Source = createQRCode("牛逼",250, 250);
11.运行程序,Image控件中显示生成的二维码,用手机扫描,可以得到二维码的内容“牛逼”。
相关文章推荐
- cocos2dx飞机大战开发记录(3)
- linux下卸载系统自带或者非自带的jdk
- 使用ShellExecute打开文件夹并选中文件
- getopt用法
- Java异常处理宝典
- 为什么这样使用DefaultTableModel会出错???
- androidのXlist框架上拉下拉刷新案例
- ERP兵法——从案例透视方法(实施篇下)
- office visio连接线控制方法
- java写入文件的几种方法分享
- 关于ViewPager被嵌套在ScrollView中不显示的问题
- 培养能力均衡的团队:高增长公司的高管在我们分析的8种关键领导力
- spring中IOC是什么意思 个人觉得解释的非常有意思
- Android微信支付开发问题
- python命名规则
- Drupal7 模块开发 之 定义模块
- C++类里面的const
- GTK+ Widget的内部结构与工作流程
- Android Studio关联SVN相关操作
- [error handle][mahout] 由于空字符串错误导致model创建失败