您的位置首页百科知识

LEADTOOLS使用教程:LEADTOOLS Barcode用法

LEADTOOLS使用教程:LEADTOOLS Barcode用法

的有关信息介绍如下:

LEADTOOLS使用教程:LEADTOOLS Barcode用法

LEADTOOLS可以准确而快速地读取各种一维和二维条码(类型)及其子类型。LEADTOOLS Barcode支持100多种条形码的读写,其中包括所有主要的1D和2D条形码。

LEADTOOLS Barcode SDK技术亮点:

可用于开发Windows应用程序,并包含本地的32位和64位2D条形码二进制文件;

包含许多有源代码的演示项目,这些源代码包含C, Visual C++ (MFC), VB.NET 和C#的

版本;

支持多线程;

支持广泛的1D条码,包括UPC/EAN, Codabar, GS1 Databa和USPS 4-State;

支持广泛的2D条码,包括PDF417, MicroPDF417, Datamatrix和QR

快速条形码检测和解码;

查找整个图像区域或特定区域的条形码;

每页阅读条形码的数量不受限;

任何方向和旋转角度检测条形码;

读写黑白区域或者彩色图像中的条码;

使用LEADTOOLS Barcode

LEADTOOLS Barcode支持可以通过Leadtools.Barcode.dll程序集来访问。实际读/写的条形码包含在动态加载和运行时访问的单独程序集中。这些组件是原生.NET和Silverlight二进制文件,可以直接添加到您的项目作为部署的参考。下表列出来条码支持的程序集以及功能:

读取条形码

要读取条码,首选需要获取存储在BarcodeEngine.Reader属性中的Leadtools.Barcode.BarcodeReader对象实例。然后调用BarcodeReader.ReadBarcode 或BarcodeReader.ReadBarcodes方法以传递Leadtools.RasterImage对象。这些方法会返回一个或一个包含了条形码数据的Leadtools.Barcode.BarcodeData对象的数组。

// Read all barcodes in the image

BarcodeData[] dataArray = barcodeEngineInstance.Reader.ReadBarcodes(

theImage, \\ The RasterImage object

LogicalRectangle.Empty, \\ Search rectangle, Empty means all image

0, \\ Maximum number of barcodes to return, 0 means all barcodes found

null); \\ Array of BarcodeSymbology we are interested in, null means all

当找到条形码或发生错误时,BarcodeReader.ReadSymbology事件被激活。 Leadtools.Barcode.BarcodeSymbology枚举中定义了所支持的条形码枚举类型。 下列代码片段可搜索并试图从图像中读取单个QR码:

BarcodeData data = barcodeEngineInstance.Reader.ReadBarcode(

theImage, \\ The RasterImage object

LogicalRectangle.Empty, \\ Search rectangle, Empty means all image

BarcodeSymbology.QR); \\ Symbology, only QR

通过传递Leadtools.Barcode.BarcodeReadOptions中的一个或者多个对象,微调条形码读取。例如,改变条形码阅读器的默认选项,将搜索方向改为水平方向和垂直于条形码PDF417,示例如下:

// Get the default PDF417 read options

PDF417BarcodeReadOptions options = barcodeEngineInstance.Reader.GetDefaultOptions(BarcodeSymbology.PDF417);

// Change the search direction

options.SearchDirection = BarcodeSearchDirection.HorizontalAndVertical;

// Read a PDF417 barcode from the image

BarcodeData data = barcodeEngineInstance.Reader.ReadBarcode(theImage, LogicalRectangle.Empty, BarcodeSymbology.PDF417);

编写条形码

要将条形码写入图像中,首先需要获取储存在BarcodeEngine.Writer属性中的Leadtools.Barcode.BarcodeWriter对象实例。然后传递 Leadtools.RasterImage对象以调用BarcodeWriter.WriterBarcode,代码如下:

// Create a UPC A barcode

BarcodeData data = new BarcodeData();

data.Symbology = BarcodeSymbology.UPCA;

data.Value = "01234567890";

data.Bounds = new LogicalRectangle(10, 10, 600, 200, LogicalUnit.Pixel);

// Write it with default options

barcodeEngineInstance.Writer.WriteBarcode(theImage, data, null);

使用一个或多个Leadtools.Barcode.BarcodeWriteOptions衍生类添加额外功能至编写操作中。下列代码可使后续的所有编写操作能显示出条形码文本:

OneDBarcodeWriteOptions options = barcodeEngineInstance.Writer.GetDefaultOptions(BarcodeSymbology.UPCA) as OneDBarcodeWriteOptions;

options.TextPosition = OneDBarcodeTextPosition.Default;

// Write it with default options

barcodeEngineInstance.Writer.WriteBarcode(theImage, data, null);

编写条码时,你可能想要计算条形码的像素尺寸,并在提交前进行微调。可使用BarcodeWriter.CalculateBarcodeDataBounds方法来实现这一点。

条码类型

LEADTOOLS支持读写以下条码类型:

Linear barcodes (1D)

PDF417 (2D)

MicroPDF417 (2D)

Datamatrix (2D)

QR (2D)

每个主要条码类型下包含一个或者多个条码分类,如:

线性(1D)条码:

EAN 13

EAN 8

UPC A

UPC E

Code 3 of 9

Code 128

Code 93

Interleaved 2 of 5

CODABAR

UCCEAN 128

EAN EXT 5

EAN EXT 2

MSI

Code 11

Standard 2 Of 5

GS1 Databar (formerly RSS14) Omnidirectional

GS1 Databar (formerly RSS14) Truncated

GS1 Databar (formerly RSS14) Limited

GS1 Databar (formerly RSS14) Expanded

Patch Code

Postnet

Planet

Australian Post - 4 State

Royal Mail (RM4SCC)

GS1 Databar (formerly RSS14) Stacked

GS1 Databar (formerly RSS14) Stacked Omnidirectional

GS1 Databar (formerly RSS14) Expanded Stacked

2D:

PDF417

MicroPDF417

Datamatrix (with multiple symbol sizes)

QR (with multiple symbol models)