zoukankan      html  css  js  c++  java
  • WPF 创建二维码

    1.在http://zxingnet.codeplex.com/网站上下载ZXing .Net的第三方库

    2.新建一个WPFproject

    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控件中显示生成的二维码,用手机扫描,能够得到二维码的内容“牛逼”。
  • 相关阅读:
    Linux下Socket编程之地址结构
    矫正Fedora 8中livna源Nvidia驱动托付关连
    Firefox3 RC1颁布各种新特征发扬阐发更平定
    Fedora 8中完全开启compizfusion特效
    编译安置gsopcast SVN版
    Sopcast for linux更新至3.01!
    措置惩罚Fedora 8中的装备权限标题成绩
    vsftp假造用户设置(Ubuntu8.04)
    QQ2008贺岁版 on FedoraBy wine 0.9.58
    vFU NET
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6893972.html
Copyright © 2011-2022 走看看