In addition to setting the base class members as specified in BarcodeReadOptions(), the members are initialized as follows:
| Member | Value |
|---|---|
| EnableDoublePass |
false |
| EnableDoublePassIfSuccess |
false (for maximum performance) |
| EnablePreprocessing |
false (for maximum performance) |
using Leadtools;using Leadtools.Codecs;using Leadtools.Barcode;using Leadtools.ImageProcessing;public void QRBarcode_Example(){string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "MyQRBarcodes.tif");BarcodeEngine engine = new BarcodeEngine();// Create the image to write the barcodes toint resolution = 300;using (RasterImage image = RasterImage.Create((int)(8.5 * resolution), (int)(11.0 * resolution), 1, resolution, RasterColor.FromKnownColor(RasterKnownColor.White))){// Write two QR barcodesWriteBarcode(engine.Writer, image, QRBarcodeSymbolModel.Model1AutoSize, "QR Data 1", false);WriteBarcode(engine.Writer, image, QRBarcodeSymbolModel.Model2Version30, "QR Data 2", true);// Save the imageusing (RasterCodecs codecs = new RasterCodecs()){codecs.Save(image, imageFileName, RasterImageFormat.CcittGroup4, 1);}}// Now read the barcodes againusing (RasterCodecs codecs = new RasterCodecs()){using (RasterImage image = codecs.Load(imageFileName)){// Read all the QR barcodesReadBarcodes(engine.Reader, image);}}}private void WriteBarcode(BarcodeWriter writer, RasterImage image, QRBarcodeSymbolModel symbolModel, string value, bool topLeft){// Create the barcode dataQRBarcodeData barcode = BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.QR) as QRBarcodeData;barcode.SymbolModel = symbolModel;barcode.Value = value;barcode.Symbology = BarcodeSymbology.QR;// We will use the alignment to position the barcodes, so use all of the imagebarcode.Bounds = new LeadRect(0, 0, image.ImageWidth, image.ImageHeight);// Set the write optionsQRBarcodeWriteOptions options = new QRBarcodeWriteOptions();if (topLeft){options.HorizontalAlignment = BarcodeAlignment.Near;options.VerticalAlignment = BarcodeAlignment.Near;}else{options.HorizontalAlignment = BarcodeAlignment.Far;options.VerticalAlignment = BarcodeAlignment.Far;}options.GroupNumber = 0;options.GroupTotal = 0;options.XModule = 30;options.ECCLevel = QRBarcodeECCLevel.LevelL;// Write itConsole.WriteLine("Writing barcode with symbol model: {0} and Data: {1}", symbolModel, value);writer.WriteBarcode(image, barcode, options);}private void ReadBarcodes(BarcodeReader reader, RasterImage image){// Setup read optionsQRBarcodeReadOptions options = new QRBarcodeReadOptions();options.EnableDoublePass = false;options.EnableDoublePassIfSuccess = true;options.EnablePreprocessing = true;Console.WriteLine("Reading QR barcodes");BarcodeData[] barcodes = reader.ReadBarcodes(image, LeadRect.Empty, 0, new BarcodeSymbology[] { BarcodeSymbology.QR }, new BarcodeReadOptions[] { options });Console.WriteLine("{0} barcodes found:", barcodes.Length);foreach (QRBarcodeData barcode in barcodes){string value = BarcodeData.ParseECIData(barcode.GetData());if (string.IsNullOrEmpty(value))value = barcode.Value;Console.WriteLine(" At {0}, symbol model: {1} data: {2} and symbology: {3}", barcode.Bounds, barcode.SymbolModel, value, barcode.Symbology);}}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";}