精华内容
下载资源
问答
  • pylibdmtx专门用于解析 DataMatrix Code 的一个库, 对其他形的解析无能为力. 安装步骤 sudo apt-get install libdmtx0a pip install pylibdmtx 代码展示 # -*-coding:utf-8 -*- import time import cv2 from...

    pylibdmtx专门用于解析 DataMatrix Code 的一个库, 对其他码形的解析无能为力.

    安装步骤

    sudo apt-get install libdmtx0a
    pip install pylibdmtx

    代码展示

    # -*-coding:utf-8 -*-
    import time
    import cv2
    from pylibdmtx import pylibdmtx
    # 加载图片
    image = cv2.imread('/home/pi/Desktop/azteccode.jpg')
    t0 = time.time()
    # 解析二维码
    all_barcode_info = pylibdmtx.decode(image, timeout=500, max_count=1)
    print(all_barcode_info)
    print(time.time() - t0)
    print(all_barcode_info[0].data.decode("utf-8"))

    [Decoded(data=b'www.nicelabel.com', rect=Rect(left=85, top=82, width=291, height=297))]
    0.04739499092102051
    www.nicelabel.com

    实例图片

    展开全文
  • 最近公司需要开发一个DataMatrix码识别的小软件,由于DataMatrix码实在太小了网上找了很多案例都不能一下子就识别c#教程多个二维码。所以就只能通过OpenCvSharp来完成一系列的操作。 下面直接上代码,功能代码都写好...

    最近公司需要开发一个DataMatrix码识别的小软件,由于DataMatrix码实在太小了网上找了很多案例都不能一下子就识别c#教程多个二维码。所以就只能通过OpenCvSharp来完成一系列的操作。

    下面直接上代码,功能代码都写好注释,不明白的地方可以@我

    OpenFileDialog openFileDialog = new OpenFileDialog();
    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
    Mat srcImage = new Mat(openFileDialog.FileName);
    //转化为灰度图
    Mat src_gray = new Mat();
    //滤波
    Cv2.Blur(srcImage, src_gray, new OpenCvSharp.Size(3, 3));
    // Cv2.ImShow("滤波", src_gray);
    Mat src_gray1 = new Mat();
    //二值化 130 具体指可以根据DataMatrix码的白色的RGB值来调整
    Cv2.Threshold(src_gray, src_gray1, 130, 255, ThresholdTypes.Binary);
    //Cv2.ImShow("二值化", src_gray1);
    //Canny边缘检测
    Mat canny_Image = new Mat();
    Cv2.Canny(src_gray1, canny_Image, 100, 200);
    //Cv2.ImShow("Canny边缘检测", canny_Image);
    //消除裂缝2 Size(11, 12) Size的值可以调整,结果出来为DataMatrix码 区域全白就ok啦。
    OpenCvSharp.Size size2 = new OpenCvSharp.Size(11, 12);
    Mat kernel = Cv2.GetStructuringElement(MorphShapes.Rect, size2);
    Cv2.MorphologyEx(canny_Image, canny_Image, MorphTypes.Close, kernel);
    // Cv2.MorphologyEx(canny_Image, canny_Image, MorphTypes.Close, canny_Image1, null,6 , BorderTypes.Constant,1);
    //Cv2.ImShow("消除裂缝", canny_Image);
    //canny_Image.SaveImage("10.bmp");
    //获得轮廓
    Mat[] contours = new Mat[10000];
    contours = Cv2.FindContoursAsMat(canny_Image, RetrievalModes.CComp, ContourApproximationModes.ApproxNone, null);
    // Cv2.FindContours(canny_Image, out contours, out hierarchly, RetrievalModes.Tree, ContourApproximationModes.ApproxSimple, new Point(0, 0));
    
    
    //将结果画出并返回结果
    Mat dst_Image = Mat.Zeros(canny_Image.Size(), srcImage.Type());
    
    
    int z = 0;
    for (int i = 0; i < contours.Length; i++)
    {
    Rect rect = Cv2.BoundingRect(contours[i]);
    //只判断DataMatrix码的宽度才进入解析
    if (rect.Width > 60 && rect.Height > 88 && rect.Width < 100 && rect.Height < 110)
    {
    //将DataMatrix码范围的框框裁剪出图片
    Rect rect1 = new Rect(rect.X, rect.Y, rect.Width, rect.Height);
    //srcImage 为原图像 rect1 裁剪的范围。
    Mat RectMat = new Mat(srcImage, rect1);
    Bitmap bitmap = BitmapConverter.ToBitmap(RectMat);
    //将裁剪出来的图片进行放大,如果不放大ZXing解析的结果就不理想。(会漏了好多DataMatrix码)
    OpenCvSharp.Size size = new OpenCvSharp.Size(bitmap.Width * 5, bitmap.Height * 5);
    Mat SizeMat = new Mat();
    Cv2.Resize(RectMat, SizeMat, size);
    bitmap.Dispose();
    Bitmap bitmap1 = BitmapConverter.ToBitmap(SizeMat);
    //bitmap.Save(i + ".png");
    for (int y = 0; y < 4; y++)
    {
    //解析DataMatrix码
    BarcodeReader reader = new BarcodeReader();
    Result result = reader.Decode(bitmap1);
    if (result == null)
    {
    //翻转图片让ZXing重新解析,防止DataMatrix码因为位置识别不出来
    bitmap1.RotateFlip(RotateFlipType.Rotate90FlipNone);
    continue;
    }
    else
    {
    z++;
    bitmap1.Save(z + ".jpg");
    textBox1.Text += "第" + z + "个码:" + result.ToString() + Environment.NewLine;
    break;
    }
    }
    
    bitmap1.Dispose();
    RectMat.Dispose();
    SizeMat.Dispose();
    Scalar color = Scalar.Red;
    Cv2.DrawContours(dst_Image, contours, i, color, 2, LineTypes.Link8, null);
    
    }
    
    }
    
    srcImage.Dispose();
    // Cv2.ImShow("结果", dst_Image);
    dst_Image.SaveImage("1.bmp");
    }
    
    //**我也是一个站在巨人肩旁写程序的搬运工(前人种树后人乘凉)**//
    
    展开全文
  • C#--解析DataMatrix二维码

    千次阅读 2018-08-13 14:18:20
    C#–解析DataMatrix码 最近在玩解析图片中的DM码。DM码在图片中显得尺寸小,而且也不清晰。一开始直接上谷歌的zxing,有些能解析出来,但是有些却显得无能为力。后来找到一个DataMatrix.net,用它解析,成功率大大...

    C#–解析DataMatrix二维码

    最近在玩解析图片中的DM码。DM码在图片中显得尺寸小,而且也不清晰。一开始直接上谷歌的zxing,有些能解析出来,但是有些却显得无能为力。后来找到一个DataMatrix.net,用它解析,成功率大大提升,但是耗时。在调用zxing或者DM进行解析时,进行了
    1 裁减–把二维码区域裁减出来(DM码在图片中太小,是必要的一步)
    2 解析,如果不成功则旋转90度解析,直到解析成功或则旋转270度

    其中,裁减这一步使用的是clone方法,但是不清楚为何有时使用这个裁减出来的图片zxing还是不能解析出来,但是使用win7系统自带的画图裁减并另存为jpg格式的时候,zxing却能解析。百思不得其解。

    另外,如何实现自动识别出二维码区域呢?需要对图像进行一些处理吗?OpenCV?


    2018-8-14
    1 找出裁减图片与win系统画图板裁减不一致的原因了,因为没有设置分辨率。
    2 代码如下

                Rectangle imgRect = new Rectangle();
                imgRect.X = rect.X * pictureBox1.Image.Width / pictureBox1.Width;
                imgRect.Y = rect.Y * pictureBox1.Image.Height / pictureBox1.Height;
                imgRect.Height = rect.Height * pictureBox1.Image.Height / pictureBox1.Height;
                imgRect.Width = rect.Width * pictureBox1.Image.Width / pictureBox1.Width;
                if (imgRect.Width == 0 || imgRect.Height == 0) return;
                Bitmap srcImg = new Bitmap(textBox1.Text);
                Bitmap b = new Bitmap(imgRect.Width, imgRect.Height);
                b.SetResolution(pictureBox1.Image.HorizontalResolution, pictureBox1.Image.VerticalResolution);
                b = srcImg.Clone(imgRect,srcImg.PixelFormat);
                srcImg.Dispose();            
                pictureBox2.Image = b;
                textBox2.Text = "解码中...";            
                this.Update();
    
                //DmtxImageDecoder DMdecoder = new DmtxImageDecoder();
                BarcodeReader br = new BarcodeReader();
                Result r = null;
                string strDMCode = null;
                for (int i = 0; i < 3; i++)
                {
                    //List<string> result = DMdecoder.DecodeImage(bitmap);
                    r = br.Decode(b);
                    if (r != null)
                    {
                        strDMCode += "Zxing: " + r.Text + "\r\n";
                        break;
                    }
                    //if (result.Count > 0)
                    //{
                    //    strDMCode += "DM:    " + result[0] + "\r\n";
                    //    //break;
                    //}
                    b.RotateFlip(RotateFlipType.Rotate90FlipNone);
                }
                if (strDMCode != null)
                    textBox2.Text = strDMCode;
                else
                    textBox2.Text = "解码失败";
                b.Dispose();   
    

    示例

    二维码解析

    展开全文
  • 今天制造了一个C#的软件,具体是用于生成二维码和条形的,包括常用的QRCode、DataMatrix、Code128、EAN-8等等。 使用的第三方类库是Zxing.net和DataMatrix.net;另外,程序中也用了委托。 (这两个类库可以在VS...

    今天制造了一个C#的软件,具体是用于生成二维码和条形码的,包括常用的QRCode、DataMatrix、Code128、EAN-8等等。

    使用的第三方类库是Zxing.net和DataMatrix.net;另外,程序中也用了委托。

    (这两个类库可以在VS2015的NuGet管理器中下载)

    但说明一下,其中发现PDF_417是有问题,具体问题是生成的条形码,再解析为字符串时,前面多了“A ”,也不知道是什么原因,反正我很少用到PDF_417,就算了,但其他的编码已经测试过是没问题的。

     

    效果图:

    使用非常简单,用法是:从ListView中选择编码类型,然后在Content中输入内容,点击“Encode”则在PictureBox中生成编码,下方的save可以保存图片,open则是打开本地的编码图片,点击“Decode”后即可自动解码。

     

    下面直接上代码(第一段代码是Helper,后面的代码如果不感兴趣可以忽略):

    (1)CodeHelper

      1 using DataMatrix.net;
      2 using System.Collections.Generic;
      3 using System.Drawing;
      4 using ZXing;
      5 using ZXing.Aztec;
      6 using ZXing.Common;
      7 using ZXing.OneD;
      8 using ZXing.PDF417;
      9 using ZXing.QrCode;
     10 
     11 namespace CodeHelper
     12 {
     13     public class CodeHelper
     14     {
     15         #region 编码
     16         public static Bitmap Encode_QR(string content, int width = 100, int margin = 1)
     17         {
     18             QrCodeEncodingOptions opt = new QrCodeEncodingOptions();
     19             opt.DisableECI = true;
     20             opt.CharacterSet = "UTF-8";
     21             opt.Width = width;
     22             opt.Height = width;
     23             opt.Margin = margin;
     24 
     25             BarcodeWriter wr = new BarcodeWriter();
     26             wr.Options = opt;
     27             wr.Format = BarcodeFormat.QR_CODE;
     28 
     29             Bitmap bm = wr.Write(content);
     30             return bm;
     31         }
     32 
     33         public static Bitmap Encode_DM(string content, int moduleSize = 5, int margin = 5)
     34         {
     35             DmtxImageEncoderOptions opt = new DmtxImageEncoderOptions();
     36             opt.ModuleSize = moduleSize;
     37             opt.MarginSize = margin;
     38 
     39             DmtxImageEncoder encoder = new DmtxImageEncoder();
     40 
     41             Bitmap bm = encoder.EncodeImage(content, opt);
     42             return bm;
     43         }
     44 
     45         public static Bitmap Encode_PDF_417(string content, int width = 100, int margin = 5)
     46         {
     47             PDF417EncodingOptions opt = new PDF417EncodingOptions();
     48             opt.Width = width;
     49             opt.Margin = margin;
     50             opt.CharacterSet = "UTF-8";
     51 
     52             BarcodeWriter wr = new BarcodeWriter();
     53             wr.Options = opt;
     54             wr.Format = BarcodeFormat.PDF_417;
     55 
     56             Bitmap bm = wr.Write(content);
     57             return bm;
     58         }
     59 
     60         public static Bitmap Encode_AZTEC(string content, int width = 100, int margin = 1)
     61         {
     62             AztecEncodingOptions opt = new AztecEncodingOptions();
     63             opt.Width = width;
     64             opt.Height = width;
     65             opt.Margin = margin;
     66 
     67             BarcodeWriter wr = new BarcodeWriter();
     68             wr.Options = opt;
     69             wr.Format = BarcodeFormat.AZTEC;
     70 
     71             Bitmap bm = wr.Write(content);
     72             return bm;
     73         }
     74 
     75         public static Bitmap Encode_Code_128(string content, int heigt = 40, int margin = 5)
     76         {
     77             Code128EncodingOptions opt = new Code128EncodingOptions();
     78             opt.Height = heigt;
     79             opt.Margin = margin;
     80 
     81             BarcodeWriter wr = new BarcodeWriter();
     82             wr.Options = opt;
     83             wr.Format = BarcodeFormat.CODE_128;
     84 
     85             Bitmap bm = wr.Write(content);
     86             return bm;
     87         }
     88 
     89         public static Bitmap Encode_Code_39(string content, int height = 30, int margin = 1)
     90         {
     91             EncodingOptions encodeOption = new EncodingOptions();
     92             encodeOption.Height = height;
     93             encodeOption.Margin = margin;
     94 
     95             BarcodeWriter wr = new BarcodeWriter();
     96             wr.Options = encodeOption;
     97             wr.Format = BarcodeFormat.CODE_39;
     98 
     99             Bitmap bm = wr.Write(content);
    100             return bm;
    101         }
    102 
    103         public static Bitmap Encode_EAN_8(string content, int height = 50, int margin = 1)
    104         {
    105             EncodingOptions encodeOption = new EncodingOptions();
    106             encodeOption.Height = height;
    107             encodeOption.Margin = margin;
    108 
    109             BarcodeWriter wr = new BarcodeWriter();
    110             wr.Options = encodeOption;
    111             wr.Format = BarcodeFormat.EAN_8;
    112 
    113             Bitmap bm = wr.Write(content);
    114             return bm;
    115         }
    116 
    117         public static Bitmap Encode_EAN_13(string content, int height = 50, int margin = 1)
    118         {
    119             EncodingOptions encodeOption = new EncodingOptions();
    120             encodeOption.Height = height;
    121             encodeOption.Margin = margin;
    122 
    123             BarcodeWriter wr = new BarcodeWriter();
    124             wr.Options = encodeOption;
    125             wr.Format = BarcodeFormat.EAN_13;
    126 
    127             Bitmap bm = wr.Write(content);
    128             return bm;
    129         }
    130         #endregion
    131 
    132         #region 编码重载
    133         public static Bitmap Encode_QR(string content)
    134         {
    135             return Encode_QR(content, 100, 1);
    136         }
    137 
    138         public static Bitmap Encode_DM(string content)
    139         {
    140             return Encode_DM(content, 5, 5);
    141         }
    142 
    143         public static Bitmap Encode_PDF_417(string content)
    144         {
    145             return Encode_PDF_417(content, 100, 5);
    146         }
    147 
    148         public static Bitmap Encode_AZTEC(string content)
    149         {
    150             return Encode_AZTEC(content, 100, 1);
    151         }
    152 
    153         public static Bitmap Encode_Code_128(string content)
    154         {
    155             return Encode_Code_128(content, 40, 5);
    156         }
    157 
    158         public static Bitmap Encode_Code_39(string content)
    159         {
    160             return Encode_Code_39(content, 30, 1);
    161         }
    162 
    163         public static Bitmap Encode_EAN_8(string content)
    164         {
    165             return Encode_EAN_8(content, 50, 1);
    166         }
    167 
    168         public static Bitmap Encode_EAN_13(string content)
    169         {
    170             return Encode_EAN_13(content, 50, 1);
    171         }
    172         #endregion
    173 
    174         /// <summary>
    175         /// 全部编码类型解码
    176         /// </summary>
    177         /// <param name="bm"></param>
    178         /// <returns></returns>
    179         public static string Decode(Bitmap bm)
    180         {
    181             DecodingOptions opt = new DecodingOptions();
    182             opt.PossibleFormats = new List<BarcodeFormat>()
    183             {
    184                 BarcodeFormat.QR_CODE,
    185                 BarcodeFormat.DATA_MATRIX,
    186                 BarcodeFormat.PDF_417,
    187                 BarcodeFormat.AZTEC,
    188                 BarcodeFormat.CODE_128,
    189                 BarcodeFormat.CODE_39,
    190                 BarcodeFormat.EAN_8,
    191                 BarcodeFormat.EAN_13
    192             };
    193             opt.CharacterSet = "UTF-8";
    194 
    195             BarcodeReader reader = new BarcodeReader();
    196             reader.Options = opt;
    197             Result rs = reader.Decode(bm);
    198             if (rs != null)
    199             {
    200                 return rs.Text;
    201             }
    202 
    203             //DM
    204             DmtxImageDecoder decoder = new DmtxImageDecoder();
    205             List<string> list = decoder.DecodeImage(bm);
    206             if (list.Count > 0)
    207             {
    208                 return list[0];
    209             }
    210 
    211             return "";
    212         }
    213     }
    214 }


    (2)Codes类:

     1 using System.Collections.Generic;
     2 using System.Drawing;
     3 using ZXing;
     4 
     5 namespace CodeHelper
     6 {
     7     public class Code
     8     {
     9         public string Name { get; set; }
    10 
    11         public BarcodeFormat Type { get; set; }
    12 
    13         public delegateGetBm GetBm { get; set; }
    14     }
    15 
    16     public delegate Bitmap delegateGetBm(string content);
    17 
    18     public class Codes
    19     {
    20         public Dictionary<int, Code> list { get; set; }
    21 
    22         public Codes()
    23         {
    24             list = new Dictionary<int, Code>();
    25             list.Add(0, new Code { Name = "QR_CODE", Type = BarcodeFormat.QR_CODE, GetBm = CodeHelper.Encode_QR });
    26             list.Add(1, new Code { Name = "DATA_MATRIX", Type = BarcodeFormat.DATA_MATRIX, GetBm = CodeHelper.Encode_DM });
    27             list.Add(2, new Code { Name = "PDF_417", Type = BarcodeFormat.PDF_417, GetBm = CodeHelper.Encode_PDF_417 });
    28             list.Add(3, new Code { Name = "AZTEC", Type = BarcodeFormat.AZTEC, GetBm = CodeHelper.Encode_AZTEC });
    29             list.Add(4, new Code { Name = "CODE_128", Type = BarcodeFormat.CODE_128, GetBm = CodeHelper.Encode_Code_128 });
    30             list.Add(5, new Code { Name = "CODE_39", Type = BarcodeFormat.CODE_39, GetBm = CodeHelper.Encode_Code_39 });
    31             list.Add(6, new Code { Name = "EAN_8", Type = BarcodeFormat.EAN_8, GetBm = CodeHelper.Encode_EAN_8 });
    32             list.Add(7, new Code { Name = "EAN_13", Type = BarcodeFormat.EAN_13, GetBm = CodeHelper.Encode_EAN_13 });
    33         }
    34     }
    35 }


    (3)主界面的后台代码:

      1 using System;
      2 using System.Drawing;
      3 using System.Windows.Forms;
      4 
      5 namespace CodeHelper
      6 {
      7     public partial class FrmMain : Form
      8     {
      9         public Codes Codes = new Codes();
     10 
     11         public FrmMain()
     12         {
     13             InitializeComponent();
     14         }
     15 
     16         private void FrmMain_Load(object sender, EventArgs e)
     17         {
     18             BindListViewItem();
     19             lvType.Items[0].Selected = true;
     20         }
     21 
     22         private void btnEncode_Click(object sender, EventArgs e)
     23         {
     24             string content = txtContent.Text;
     25 
     26             int index = lvType.SelectedItems[0].Index;
     27             try
     28             {
     29                 pbCode.Image = Codes.list[index].GetBm(content);
     30             }
     31             catch (Exception ex)
     32             {
     33                 txtContent.Text = "";
     34                 pbCode.Image = null;
     35                 MessageBox.Show(ex.Message);
     36             }
     37         }
     38 
     39         private void btnSave_Click(object sender, EventArgs e)
     40         {
     41             if (pbCode.Image == null)
     42             {
     43                 MessageBox.Show("there is no code.");
     44                 return;
     45             }
     46 
     47             bool isSave = true;
     48             SaveFileDialog sfd = new SaveFileDialog();
     49             sfd.Title = "图片保存";
     50             sfd.Filter = @"jpeg|*.jpg|bmp|*.bmp|png|*.png";
     51             sfd.FileName = txtContent.Text;
     52 
     53             if (sfd.ShowDialog() == DialogResult.OK)
     54             {
     55                 string fileName = sfd.FileName.ToString();
     56                 if (fileName != "" && fileName != null)
     57                 {
     58                     string fileExtName = fileName.Substring(fileName.LastIndexOf(".") + 1).ToString();
     59                     System.Drawing.Imaging.ImageFormat imgformat = null;
     60                     if (fileExtName != "")
     61                     {
     62                         switch (fileExtName)
     63                         {
     64                             case "jpg":
     65                                 imgformat = System.Drawing.Imaging.ImageFormat.Jpeg;
     66                                 break;
     67                             case "bmp":
     68                                 imgformat = System.Drawing.Imaging.ImageFormat.Bmp;
     69                                 break;
     70                             case "png":
     71                                 imgformat = System.Drawing.Imaging.ImageFormat.Gif;
     72                                 break;
     73                             default:
     74                                 MessageBox.Show("只能保存为: jpg,bmp,png 格式");
     75                                 isSave = false;
     76                                 break;
     77                         }
     78                     }
     79                     if (imgformat == null)
     80                     {
     81                         imgformat = System.Drawing.Imaging.ImageFormat.Jpeg;
     82                     }
     83                     if (isSave)
     84                     {
     85                         try
     86                         {
     87                             pbCode.Image.Save(fileName, imgformat);
     88                         }
     89                         catch
     90                         {
     91                             MessageBox.Show("保存失败,还没有图片或已经清空图片!");
     92                         }
     93                     }
     94                 }
     95             }
     96         }
     97 
     98         private void BindListViewItem()
     99         {
    100             lvType.View = View.LargeIcon;
    101             lvType.LargeImageList = imgList;
    102             lvType.BeginUpdate();
    103 
    104             for (int i = 0; i < Codes.list.Count; i++)
    105             {
    106                 ListViewItem lvi = new ListViewItem();
    107                 lvi.ImageIndex = i;
    108                 lvi.Text = Codes.list[i].Name;
    109                 lvType.Items.Add(lvi);
    110             }
    111             lvType.EndUpdate();
    112         }
    113 
    114         private void btnDecode_Click(object sender, EventArgs e)
    115         {
    116             txtContent.Text = "";
    117 
    118             Bitmap bm = (Bitmap)pbCode.Image;
    119             try
    120             {
    121                 txtContent.Text = CodeHelper.Decode(bm);
    122             }
    123             catch (Exception ex)
    124             {
    125                 MessageBox.Show(ex.Message);
    126             }
    127         }
    128 
    129         private void btnOpen_Click(object sender, EventArgs e)
    130         {
    131             txtContent.Text = "";
    132             pbCode.Image = null;
    133 
    134             OpenFileDialog ofd = new OpenFileDialog();
    135             ofd.Title = "打开图片";
    136             ofd.Filter = @"所有文件|*.*|jpeg|*.jpg|bmp|*.bmp|png|*.png";
    137 
    138             if (ofd.ShowDialog() == DialogResult.OK)
    139                 pbCode.Image = Image.FromFile(ofd.FileName);
    140         }
    141 
    142         private void lvType_SelectedIndexChanged(object sender, EventArgs e)
    143         {
    144             pbCode.Image = null;
    145         }
    146     }
    147 }

    界面的控件:

    Label lblType;
    ListView lvType;
    Button btnEncode;
    Button btnDecode;
    PictureBox pbCode;
    TextBox txtContent;
    Label lblContent;
    Button btnSave;
    Button btnOpen;
    ImageList imgList;


    就这样吧,欢迎交流。

    转载于:https://www.cnblogs.com/chenyucong/p/6222391.html

    展开全文
  • Important: Get the monitoring data of the Matrix via onReportIssue:, the data format info reference to Matrix for iOS/macOS Data Format Description Tutorials At this point, Matrix has been integrated...
  • 基于zxing(https://github.com/zxing/zxing)与maven,针对二维码(包括带图片的二维码)、条形进行了简单的封装,以便在项目中更...目标是能够对QR编码、Data Matrix、UPC的1D条形进行解码。 其提供了多种平台下...
  • 二维码解析

    2018-05-02 15:00:19
    ZXing是一个开源Java类库用于解析多种格式的1D/2D条形。目标是能够对QR编码、Data Matrix、UPC的1D条形进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android
  • 解析二维码内容

    2021-03-08 11:06:49
    目标是能够对QR编码、Data Matrix、UPC的1D条形进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。 import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import ...
  • zxing.java源码解析 目录 1. 二维码简介 1.1 定义 2-dimensional bar code 用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息 1.2 分类 制:Data Matrix, Maxi Code, ...
  • android 解析、生成二维码

    千次阅读 2016-04-12 12:42:42
    目标是能够对QR编码、Data Matrix、UPC的1D条形进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。 下面我们使用的是整理过,只对android有用,库就小了好多 (2)下载第三方库,导库 下载:...
  • ZXing库是一个开源Java类库,可用于生成和解析多种格式的1D/2D条形,一个支持在图像中解码和生成条形(如二维码、PDF 417、EAN、UPC、Aztec、Data Matrix、Codabar)的库。ZXing(“zebra crossing”)是一个开源的...
  • crossing”)是一个支持多种格式的条形和二维码图形解析的开源Java类库,同时它也提供了其他语言的接口。 解码时支持格式有:UPC-A、UPC-E、EAN-8、EAN-13、Code 39、Code 93、Code 128、ITF、Codabar、MSI、RSS-...
  • QR

    2012-08-10 11:30:20
    QR的使用越来越多,可以在很多地方见着,比如火车票、推广产品上...目标是能够对QR编码、Data Matrix、UPC的1D条形进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。---用来解码QRcode d-proj...
  • 目录 概述 实战 ...目标是能够对QR编码、Data Matrix、UPC的1D条形进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。 官网:ZXing github仓库 实战 本例演示如何在一...
  • C#利用zxing.net操作二维码和条形

    万次阅读 2016-04-25 14:49:53
    ZXing.Net是一个开源.Net类库用于解析多种格式的1D/2D条形。目标是能够对QR编码、Data Matrix、UPC的1D条形进行解码。
  • 条形处理类库-ZXing

    2014-04-28 21:55:45
    简介  ZXing是一个开源Java类库用于解析多种格式的1D/2D条形。目标是能够对QR编码、Data Matrix、UPC的1D条形进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。 官网 参考
  • 几乎在每个商品包装上都有条形的影子,那么什么是条形,我们能不能通过代码在iPhone手机上自己实现对条形的识别呢?答案就在下面: ZXing是一个开源Java类库...目标是能够对QR编码、Data Matrix、UPC的1D...
  • 条形 zxing工具

    2011-01-04 15:46:53
    简介  最近的Widget项目用到需要用摄像头来处理...目标是能够对QR编码、Data Matrix、UPC的1D条形进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。 当前,ZXing主要支持以下条形: ...
  • 条形处理类库 ZXing

    2013-02-13 15:29:00
    目标是能够对QR编码、Data Matrix、UPC的1D条形进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。 转载于:https://www.cnblogs.com/xhyx/archive/2013/02/13/ZXing.htm...
  • Java 生成 / 解码 QR

    2013-03-10 11:26:24
    QR的使用越来越多,可以在很多地方见着,比如火车票、推广产品上...目标是能够对QR编码、Data Matrix、UPC的1D条形进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。---用来解码QRcode d-pro...
  • 在企业应用中可能某一些情况,需要二维码扫,大多数采用的开源组件zxing实现。简介 最近的Widget项目用到...目标是能够对QR编码、Data Matrix、UPC的1D条形进行解码。 其提供了多种平台下的客户端包括:J2ME、...

空空如也

空空如也

1 2 3 4 5 6
收藏数 115
精华内容 46
关键字:

datamatrix码解析