C# Winform 二维码生成 读取 条码生成读取 帮助类

using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using ZXing;
using ZXing.Common;

namespace WindowsFormsApp2
{
    //zxing.net是.net平台下编解条形码和二维码的工具,使用非常方便。 
    //首先下载二进制dll文件,引入项目
    //1.打开vs
    //2.点击工具
    //3.点击NuGet包管理器
    //4.随后点击管理解决方案的NuGet程序包
    //5.随后点击预览搜索ZXing.NET下载安装即可
    public class ZXingHelper
    {
        /// <summary>
        /// 生成EAN-12码制条码
        /// </summary>
        /// <param name="txtContext">生成的内容</param>
        /// <returns></returns>
        public Bitmap CreateBarCode(string txtContext)
        {
            //只能输入12个数字
            // 1.设置条形码规格
            EncodingOptions encodeOption = new EncodingOptions();
            encodeOption.Height = 130; // 必须制定高度、宽度
            encodeOption.Width = 240;

            // 2.生成条形码图片并保存
            ZXing.BarcodeWriter wr = new BarcodeWriter();
            wr.Options = encodeOption;
            wr.Format = BarcodeFormat.EAN_13; //  条形码规格:EAN13规格:12(无校验位)或13位数字
            Bitmap img = wr.Write(txtContext); // 生成图片
            string filePath = System.AppDomain.CurrentDomain.BaseDirectory + "\\EAN_13-" + txtContext + ".jpg";
            img.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg);
            return img;
        }
        /// <summary>
        /// 读取条码
        /// </summary>
        /// <param name="pictureImage">需要读取的条码</param>
        /// <returns></returns>
        public DialogResult ReadBarCode( Image pictureImage)
        {
            // 1.设置读取条形码规格
            DecodingOptions decodeOption = new DecodingOptions();
            decodeOption.PossibleFormats = new List<BarcodeFormat>()
            {
             BarcodeFormat.EAN_13,
             };

            // 2.进行读取操作
            ZXing.BarcodeReader br = new BarcodeReader();
            br.Options = decodeOption;
            ZXing.Result rs = br.Decode(pictureImage as Bitmap);
            if (rs == null)
            {
                return MessageBox.Show("读取失败");
            }
            else
            {
                return MessageBox.Show("读取成功,内容:" + rs.Text);
            }
        }
        /// <summary>
        /// 生成QR二维码
        /// </summary>
        /// <param name="txtContext">需要生成的内容</param>
        /// <returns></returns>
        public Bitmap CreateQRCode(string txtContext)
        {
            // 1.设置QR二维码的规格
            ZXing.QrCode.QrCodeEncodingOptions qrEncodeOption = new ZXing.QrCode.QrCodeEncodingOptions();
            qrEncodeOption.CharacterSet = "UTF-8"; // 设置编码格式,否则读取'中文'乱码
            qrEncodeOption.Height = 200;
            qrEncodeOption.Width = 200;
            qrEncodeOption.Margin = 1; // 设置周围空白边距

            // 2.生成条形码图片并保存
            ZXing.BarcodeWriter wr = new BarcodeWriter();
            wr.Format = BarcodeFormat.QR_CODE; // 二维码
            wr.Options = qrEncodeOption;
            Bitmap img = wr.Write(txtContext);
            string filePath = System.AppDomain.CurrentDomain.BaseDirectory + "\\QR-" + txtContext + ".jpg";
            img.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg);
           return  img;
        }
        public DialogResult ReadQRCode(Image pictureImage)
        {
            // 1.设置读取二维码规格
            DecodingOptions decodeOption = new DecodingOptions();
            decodeOption.PossibleFormats = new List<BarcodeFormat>() {
                 BarcodeFormat.QR_CODE,

        };


            // 2.进行读取操作
            ZXing.BarcodeReader br = new BarcodeReader();
            br.Options = decodeOption;
            ZXing.Result rs = br.Decode(pictureImage as Bitmap);
            if (rs == null)
            {
                return MessageBox.Show("读取失败");
            }
            else
            { 
               return MessageBox.Show("读取成功,内容:" + rs.Text);
            }

        }
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值