致力于图形处理和移动开发。
分类: C#/.net
2013-12-16 10:56:04
LEADTOOLS可以准确而快速地读取各种一维和二维条码(类型)及其子类型。LEADTOOLS Barcode支持100多种条形码的读写,其中包括所有主要的1D和2D条形码。
LEADTOOLS Barcode SDK技术亮点:
使用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支持读写以下条码类型:
每个主要条码类型下包含一个或者多个条码分类,如:
线性(1D)条码:
2D: