精华内容
下载资源
问答
  • C# Zxing条形码和二维码去除白边
    2020-11-04 13:16:24

    做打印条码项目中需要打印大量的条形码和二维码,生成的二维码总是存在白边,解决一下~

            /// <summary>
            /// Zxing条形码和二维码去除白边
            /// </summary>
            /// <param name="bitMatrix"></param>
            /// <param name="bitmap"></param>
            /// <returns></returns>
            private static Bitmap RemoveWhiteMargin(BitMatrix bitMatrix, Bitmap bitmap)
            {
                try
                {
                    //获取参数
                    int[] rec = bitMatrix.getEnclosingRectangle();
                    int left = rec[0];
                    int top = rec[1];
                    int width = rec[2];
                    int height = rec[3];
                    Bitmap newImg = new Bitmap(width, height);
                    Graphics g = Graphics.FromImage(newImg);
                    //截取
                    g.DrawImage(bitmap, 0, 0, new Rectangle(left, top, newImg.Width, newImg.Height), GraphicsUnit.Pixel);
                    return newImg;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                return bitmap;
            }
    
    更多相关内容
  • ZXing.NET C#使用ZXing识别二维码,条形码,源代码可直接运行
  • C#zxing二维码

    2018-06-11 09:16:26
    C# zxing二维码代码
  • 博客"C# ZXing.Net 生成二维码支持中文"的简易Demo,很简单的东西,但是还有童鞋们不会,就简单写了个Demo,希望有所帮助。
  • ZXing.NET C#使用ZXing识别二维码,条形码 包含VS2008至2017版本
  • C# zxing条形码开源库的简单使用例子

    千次阅读 2019-11-03 18:37:37
    C# zxing条形码开源库的简单使用例子 一、简述 记--使用zxing条形码开源库生成条形码和识别图片中的条形码。 例子:链接: https://pan.baidu.com/s/1Xe_ZEs07mfj-YyvgApK_Zw 提取码: cy6t zxing库下载:...

                                       C# zxing条形码开源库的简单使用例子

    一、简述

           记--使用zxing条形码开源库生成条形码和识别图片中的条形码。

           例子:链接: https://pan.baidu.com/s/1Xe_ZEs07mfj-YyvgApK_Zw 提取码: cy6t

            zxing库下载:https://pan.baidu.com/s/10jeBSyZPvDxvPb6LXw-xlQ 提取码: xufm 

            官网: https://github.com/micjahn/ZXing.Net/releases     

            

    二、效果

            根据输入的英文字符串生成对应的条形码,然后将条形码保存为图片,再根据图片识别出条形码的内容。

            

    三、工程结构

             

             

    四、源文件

            Form1.cs文件

            

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using ZXing.Common;
    
    namespace BarCode
    {
        public partial class MainForm : Form
        {
            public MainForm()
            {
                InitializeComponent();
            }
    
            //生成条形码
            private void buttonCreatorBarCode_Click(object sender, EventArgs e)
            {
                string barCodeStr = textBoxBarCodeStr.Text;
                if (barCodeStr != "")
                {
                    setBarCode128(barCodeStr);
                }
            }
    
            /// <summary>
            /// 将生成的条形码设置到pictureBox
            /// </summary>
            /// <param name="acode">条形码对应的文本</param>
            public void setBarCode128(string barCodeStr)
            {
                try
                {
                    EncodingOptions encodeOption = new EncodingOptions();
                    encodeOption.Height = 100;
                    encodeOption.Width = 300;
                    ZXing.BarcodeWriter wr = new ZXing.BarcodeWriter();
                    wr.Options = encodeOption;
                    wr.Format = ZXing.BarcodeFormat.CODE_128;
                    Bitmap img = wr.Write(barCodeStr);
                    pictureBoxBarCode.Image = img;
                }
                catch
                { }
            }
    
            /// <summary>
            /// 识别条形码图片
            /// </summary>
            /// <param name="picPath">条形码图片的路径</param>
            public void getBarCode128FromPic(string picPath)
            {
                try
                {
                    Bitmap img = new Bitmap(picPath);
                    pictureBoxBarCodePic2.Image = img;
    
                    DecodingOptions decodeOption = new DecodingOptions();           
                    ZXing.BarcodeReader reader = new ZXing.BarcodeReader();
                    reader.Options = decodeOption;
                    ZXing.Result result = reader.Decode(img);
                    string barCodeStr = result.ToString();
                    labelBarCodeResult.Text = "识别结果是:"+barCodeStr;
    
                }
                catch
                { }
            }
    
            /// <summary>
            /// 打开图片文件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void buttonOpenPicFile_Click(object sender, EventArgs e)
            {
                try
                {
                    OpenFileDialog ofd = new OpenFileDialog();
                    ofd.Title = "请选择条形码图片文件";//对话框的标题
                    ofd.InitialDirectory = "D:\\Test";//对话框打开的目录
                    ofd.Filter = "png文件|*.png|所有文件|*.*";//过滤文件类型
                    DialogResult result = ofd.ShowDialog();
                    string res = result.ToString();
                    if (res == "OK")
                    {
                        string filePath = ofd.FileName;
                        getBarCode128FromPic(filePath);
                    }
                }
                catch { }
            }
        }
    }
    

    五、总结

             5.1 添加引用zxing库          

     

             5.2 注意

                   

                  单独将生成的可执行文件(xxx.exe)放在其他目录运行或者是其它电脑运行,需要将zxing库所在路径设置到环境变量或者是将zxing.dll放在可执行文件的同级目录下。 

    展开全文
  • C#下通过DirectShow控制摄像头,实现快照后解码二维码。 在win2k3及win7下测试通过,是对QR和pdf417的识别。 对gbk编码汉字的识别后是乱码,对utf-8编码的汉字可识别,部分二维码不能识别。 希望此代码对使用C#...
  • C#使用ZXing.Net生成二维码和条形码,可以输入的内容生成条码,可以设置条码的宽度和高度,以及各种条码类型,还可以通过拖拽直接识别条码内容 具体操作见:...
  • 代码如下:private void button1_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(this.textBox1.Text.Trim())) { MessageBox.Show(“请输入需要转换的信息!”); return; } ...
  • Zxing
  • public ActionResult Erweis(string text) { BarcodeWriter writer = new BarcodeWriter(); writer.Format = BarcodeFormat.QR_CODE; QrCodeEncodingOption...

       public ActionResult Erweis(string text)
            {
                BarcodeWriter writer = new BarcodeWriter();
                writer.Format = BarcodeFormat.QR_CODE;
                QrCodeEncodingOptions options = new QrCodeEncodingOptions();
                options.DisableECI = true;
                //设置内容编码
                options.CharacterSet = "UTF-8";
                //设置二维码的宽度和高度
                options.Width = 500;
                options.Height = 500;
                //设置二维码的边距,单位不是固定像素
                options.Margin = 1;
                writer.Options = options;
    
                Bitmap map = writer.Write(text);
                string di = text + DateTime.Now.ToString("yyyyMMddHHmmss") + ".png";
                string path = Path.Combine(Request.MapPath("/Content/"),di);
                //string filename = @"H:\桌面\截图\generate1.png";
                map.Save(path, ImageFormat.Png);
                map.Dispose();
                ViewBag.img = "/Content/"+di;
                return View();
       
            }

     

    转载于:https://www.cnblogs.com/d0975/p/10569468.html

    展开全文
  • 一.ZXing.Net 源代码地址:http://zxingnet.codeplex.com/也可以使用Nuget包管理,添加如图:说明:ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行...

    一.ZXing.Net 源代码地址http://zxingnet.codeplex.com/

    也可以使用Nuget包管理,添加如图:

    说明:ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。现在也有了对应的.Net版本

    二、生成二维码

    将字符编码时可以指定字符格式;默认为ISO-8859-1英文字符集,但一般移动设备常用UTF-8字符集编码,

    可以通过QrCodeEncodingOptions设置编码方式。

    如果要生成其他zxing支持的条形码,只要修改BarcodeWriter.Format就可以了。

    复制代码
    /// <summary>
    /// 生成二维码,保存成图片
    /// </summary>
    static void Generate1(string text)
    {
        BarcodeWriter writer = new BarcodeWriter();
        writer.Format = BarcodeFormat.QR_CODE;
        QrCodeEncodingOptions options = new QrCodeEncodingOptions();
        options.DisableECI = true;
        //设置内容编码
        options.CharacterSet = "UTF-8";
        //设置二维码的宽度和高度
        options.Width = 500;
        options.Height = 500;
        //设置二维码的边距,单位不是固定像素
        options.Margin = 1;
        writer.Options = options;
    
        Bitmap map = writer.Write(text);
        string filename = @"H:\桌面\截图\generate1.png";
        map.Save(filename, ImageFormat.Png);
        map.Dispose();
    }
    复制代码
    //生成二维码 
    Generate1("https://www.baidu.com/");
    Generate1("ionic是一个强大的混合式/hybrid HTML5移动开发框架,特点是使用标准的HTML、CSS和JavaScript,开发跨平台的应用 ,只需要几步就可以快速创建您的Ionic应用,创建应用从这里开始");

    三、生成条形码

    复制代码
    static void Generate2(string text)
    {
        BarcodeWriter writer = new BarcodeWriter();
        //使用ITF 格式,不能被现在常用的支付宝、微信扫出来
        //如果想生成可识别的可以使用 CODE_128 格式
        //writer.Format = BarcodeFormat.ITF;
        writer.Format = BarcodeFormat.CODE_128;
        EncodingOptions options = new EncodingOptions()
        {
            Width = 150,
            Height =50,
            Margin=2
        };
        writer.Options = options;
        Bitmap map = writer.Write(text);
        string filename = @"H:\桌面\截图\generate2.png";
        map.Save(filename, ImageFormat.Png);
    }
    复制代码
    复制代码
    //生成条形码
    Generate2("1234567890");
    //错误说明
    //只支持数字
    Requested contents should only contain digits, but got 'i'
    //只支持偶数个
    The lenght of the input should be even
    //最大长度80
    Requested contents should be less than 80 digits long, but got 102
    复制代码

    三、识别二维码/条形码

    复制代码
    /// <summary>
    /// 读取二维码
    /// 读取失败,返回空字符串
    /// </summary>
    /// <param name="filename">指定二维码图片位置</param>
    static string Read1(string filename)
    {
        BarcodeReader reader = new BarcodeReader();
        reader.Options.CharacterSet = "UTF-8";
        Bitmap map = new Bitmap(filename);
        Result result = reader.Decode(map);
        return result == null ? "" : result.Text;
    }
    复制代码
    复制代码
    //1.读取二维码内容
    //读取字母成功
    //string filename = @"H:\桌面\截图\url.png";
    //string filename = @"H:\桌面\截图\weibo.png";
    //string filename = @"H:\桌面\截图\qrcode1.png";
    //string filename = @"H:\桌面\截图\qrcode2.png";
    //string filename = @"H:\桌面\截图\qrcode3.png";
    //对于有logo的二维码只返回字符串内容
    //string filename = @"H:\桌面\截图\qrcode4.png";
    //string filename = @"H:\桌面\截图\qrcode5.png";
    //string filename = @"H:\桌面\截图\qrcode6.png";
    //识别条形码
    string filename = @"H:\桌面\截图\generate2.png";
    string result = Read1(filename);
    Console.WriteLine(result);
    复制代码

     

    Demo源代码:http://git.oschina.net/tiama3798/QrCodeTool/tree/StudyDemo1/

     

    1.使用ZXint.Net生成带logo的二维码

    复制代码
    /// <summary>
    /// 生成带Logo的二维码
    /// </summary>
    /// <param name="text"></param>
    static void Generate3(string text)
    {
        //Logo 图片
        Bitmap logo = new Bitmap(@"H:\桌面\截图\102.jpg");
        //构造二维码写码器
        MultiFormatWriter writer = new MultiFormatWriter();
        Dictionary<EncodeHintType, object> hint = new Dictionary<EncodeHintType, object>();
        hint.Add(EncodeHintType.CHARACTER_SET,"UTF-8");
        hint.Add(EncodeHintType.ERROR_CORRECTION,ErrorCorrectionLevel.H);
    
        //生成二维码 
        BitMatrix bm = writer.encode(text,BarcodeFormat.QR_CODE,300,300,hint);
        BarcodeWriter barcodeWriter = new BarcodeWriter();
        Bitmap map = barcodeWriter.Write(bm);
    
    
        //获取二维码实际尺寸(去掉二维码两边空白后的实际尺寸)
        int[] rectangle = bm.getEnclosingRectangle();
    
        //计算插入图片的大小和位置
        int middleW = Math.Min((int)(rectangle[2] / 3.5), logo.Width);
        int middleH = Math.Min((int)(rectangle[3]/3.5),logo.Height);
        int middleL = (map.Width - middleW) / 2;
        int middleT = (map.Height - middleH) / 2;
    
        //将img转换成bmp格式,否则后面无法创建Graphics对象
        Bitmap bmpimg = new Bitmap(map.Width,map.Height,PixelFormat.Format32bppArgb);
        using (Graphics g=Graphics.FromImage(bmpimg))
        {
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
            g.DrawImage(map,0,0);
        }
        //将二维码插入图片
        Graphics myGraphic = Graphics.FromImage(bmpimg);
        //白底
        myGraphic.FillRectangle(Brushes.White,middleL,middleT,middleW,middleH);
        myGraphic.DrawImage(logo,middleL,middleT,middleW,middleH);
    
        //保存成图片
        bmpimg.Save(@"H:\桌面\截图\generate3.png",ImageFormat.Png);
    }
    复制代码

    调用:

    //生成带图片的二维码
    Generate3("https://www.baidu.com/");
    Generate3("ionic是一个强大的混合式/hybrid HTML5移动开发框架,特点是使用标准的HTML、CSS和JavaScript,开发跨平台的应用 ,只需要几步就可以快速创建您的Ionic应用,创建应用从这里开始");

    展开全文
  • 基于ZXing的条形码解码识别,内附工程项目文件,可以直接运行
  • c#使用zxing打印标签

    2021-12-15 08:54:20
    BarCodeClass.cs using System;...using ZXing.Common; using ZXing; using System.Windows.Forms; using System.Drawing; using System.Text.RegularExpressions; using ZXing.QrCode; namespa...
  • C#封装好的二维码扫描类库,亲测可用,Zxing。最新版已经封装完成,可以直接使用。
  • ZXing.Net.0.14.0.0下载

    2018-05-21 18:16:50
    net4.5生成二维码,具体代码请参考 https://www.cnblogs.com/WhyShang/p/3704513.html
  • } C#版 /// /// 生成二维码 /// /// 内容 /// 宽度 /// 高度 /// 二维码Bitmap public static Bitmap GenerateQRCode(string text, int width, int height) { BarcodeWriter writer = new BarcodeWriter();...
  • zxing-C#应用

    2018-10-20 22:00:46
    zxingC#实现,能够识别二维码,有界面信息,只需要添加图片就行。
  • winform中用到二维码生成类zXing,v2.0.50727版本,带pdf417
  • 一、首先下载 ZXing.Net 地址是:http://zxingnet.codeplex.com/releases/view/117068 然后将对应版本 .dll 拖入项目中,再引用之。 主要是用 BarcodeWriter、BarcodeReader。 二、生成二维码 .NET 平台的代码始终要...
  • 1、下载并导入ZXing包,不会下载的同学可以参考https://blog.csdn.net/qq_37243144/article/details/107357638 2、新建帮助类 using System; using System.Drawing;...using System.Windows;...using ZXing.QrCode.
  • 1.通过NuGet引入ZXing.Net 2.生成二维码并保存 public string ErWeMaPrint(string name)//内容 { // 配置参数============================================================================== Dictionary<...
  • 我用的是zxing.dll 生成的二维码,但是里面放的内容一多久模糊了,很难扫,可以说基本扫不出来。这个问题怎么解决?
  • 采用C#代码,利用Graphics类库自动画表格填充变量值,以及ZXing类库产生条码,最终打印出来
  • 我的目标是在像这样的大图像上检测多个数据矩阵(四大):基于几个代码示例,我做了一个小测试程序:Bitmap image = getImage();DataMatrixReader reader = new DataMatrixReader();GenericMultipleBarcodeReader ...
  • 上段时间项目中添加需求,需要将生成报告上显示二维码,让用户可以扫描二维码查看电子内容,网上的方法也比较多,我是通过zxing.dll库来实现的。 简单介绍下,.net平台下编解条形码和二维码的工具,使用非常方便。...
  • C#利用Zxing.net生成条形码和二维码并实现打印,解码
  • 管理NuGet程序包,打开NuGet包管理器窗口,进行搜索下载即可。 2、生成二维码: public Bitmap CreateQRCode(string str, int width, int height) ... EncodingOptions options = new QrCodeEncodingOptions ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,544
精华内容 617
关键字:

c#zxing

c# 订阅