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
    {
        /// 
        /// 生成EAN-12码制条码
        /// 
        /// 生成的内容
        /// 
        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;
        }
        /// 
        /// 读取条码
        /// 
        /// 需要读取的条码
        /// 
        public DialogResult ReadBarCode( Image pictureImage)
        {
            // 1.设置读取条形码规格
            DecodingOptions decodeOption = new DecodingOptions();
            decodeOption.PossibleFormats = new List()
            {
             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);
            }
        }
        /// 
        /// 生成QR二维码
        /// 
        /// 需要生成的内容
        /// 
        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.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);
            }

        }
    }
}

你可能感兴趣的:(C# Winform 二维码生成 读取 条码生成读取 帮助类)