zoukankan      html  css  js  c++  java
  • 使用ZXing.dll库生成二维码(C#实现)

    最近工作中有需要一个需求,就是把一个服务地址生成二维码,可以用来扫码分享,网上找了下方法也比较多,我这里po一下调用ZXing.dll库生成二维码的方法吧。先简单介绍一下 ZXing库,ZXing库是一个开源Java类库,可用于生成和解析多种格式的1D/2D条形码;zxing遵循Apache License 2.0,只是工具而已,是不收费哒。

    ZXing库的下载地址:http://zxingnet.codeplex.com/

    点击下载下载后解压压缩包:

    把Zxing加到工程应用中,以下为核心代码:

     1 /// <summary>
     2         /// 生成二维码图片
     3         /// </summary>
     4         /// <param name="strMessage">要生成二维码的字符串</param>
     5         /// <param name="width">二维码图片宽度</param>
     6         /// <param name="height">二维码图片高度</param>
     7         /// <returns></returns>
     8         private Bitmap GetQRCodeByZXingNet(String strMessage,Int32 width,Int32 height)
     9         {
    10             Bitmap result = null;
    11             try
    12             {
    13                 BarcodeWriter barCodeWriter = new BarcodeWriter();
    14                 barCodeWriter.Format = BarcodeFormat.QR_CODE;
    15                 barCodeWriter.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");
    16                 barCodeWriter.Options.Hints.Add(EncodeHintType.ERROR_CORRECTION, ZXing.QrCode.Internal.ErrorCorrectionLevel.H);
    17                 barCodeWriter.Options.Height = height;
    18                 barCodeWriter.Options.Width = width;
    19                 barCodeWriter.Options.Margin = 0;
    20                 ZXing.Common.BitMatrix bm = barCodeWriter.Encode(strMessage);
    21                 result = barCodeWriter.Write(bm);
    22             }
    23             catch (Exception ex)
    24             { 
    25                 //异常输出
    26             }
    27             return result;
    28         }

    看一下生成二维码的效果:

     

    同时  Zxing库也支持对二维码图片解码

    解码的核心代码如下:

    /// <summary>
            /// 解码二维码
            /// </summary>
            /// <param name="barcodeBitmap">待解码的二维码图片</param>
            /// <returns>扫码结果</returns>
            private string DecodeQrCode(Bitmap barcodeBitmap)
            {
                 BarcodeReader reader = new BarcodeReader();
                 reader.Options.CharacterSet = "UTF-8";
                 var result = reader.Decode(barcodeBitmap);
                 return (result == null) ? null : result.Text;
            }

    看一下效果:

    随便找了个二维码:

    扫码结果如下:

  • 相关阅读:
    java的第八次作业
    软件工程第三次作业——关于软件质量保障初探
    java的第七次作业
    java的第六次作业
    20194688 自动生成四则运算题第一版报告
    软件工程第一次作业
    vertical-align
    行高(line-height)
    文本对齐方式(text-align)
    文字样式属性
  • 原文地址:https://www.cnblogs.com/mohanchen/p/7086902.html
Copyright © 2011-2022 走看看