Leadtools.Barcode Namespace > BarcodeReader Class > ReadBarcode Method : ReadBarcode(RasterImage,LogicalRectangle,BarcodeSymbology,BarcodeReadOptions) Method |
public BarcodeData ReadBarcode( RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology symbology, BarcodeReadOptions options )
'Declaration Public Overloads Function ReadBarcode( _ ByVal image As RasterImage, _ ByVal searchBounds As LogicalRectangle, _ ByVal symbology As BarcodeSymbology, _ ByVal options As BarcodeReadOptions _ ) As BarcodeData
'Usage Dim instance As BarcodeReader Dim image As RasterImage Dim searchBounds As LogicalRectangle Dim symbology As BarcodeSymbology Dim options As BarcodeReadOptions Dim value As BarcodeData value = instance.ReadBarcode(image, searchBounds, symbology, options)
public BarcodeData ReadBarcode( RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology symbology, BarcodeReadOptions options )
ObjectiveC Syntax
function Leadtools.Barcode.BarcodeReader.ReadBarcode(RasterImage,LogicalRectangle,BarcodeSymbology,BarcodeReadOptions)( image , searchBounds , symbology , options )
public: BarcodeData^ ReadBarcode( RasterImage^ image, LogicalRectangle searchBounds, BarcodeSymbology symbology, BarcodeReadOptions^ options )
Use these methods if you want to read a single barcode from the image, for example, a QR symbol by specifying BarcodeSymbology.QR or if you want to read any barcode found regardless of its type by using BarcodeSymbology.Unknown.
For more information on barcode reading, refer to BarcodeReader.
This method will use the default read options set in this BarcodeReader that correspond to symbology. If the value of this parameter is BarcodeSymbology.Unknown, then all the default read options might be used.
LEADTOOLS barcode read engine is optimized for speed and can search for multiple similar symbologies at the same time. This method simply returns the first barcode that is detected correctly using the symbology and current options.
This method will use the options in options when reading the barcode. If this parameter is null (Nothing in Visual Basic), then the default options for symbology (or all default options if BarcodeSymbology.Unknown is specified) will be used instead.
If options is not null (Nothing in Visual Basic) and symbology is not BarcodeSymbology.Unknown, then it must contain a derived class of BarcodeReadOptions that supports symbology.
LEADTOOLS barcode read engine is optimized for speed and can search for multiple similar symbologies at the same time. This method simply returns the first barcode that is detected correctly using the symbology and current options.
The ReadSymbology event will occur before and after attempting to read any symbology. The read options being used whether the default or specified will be set in the BarcodeReadSymbologyEventArgs.Options property of the event data.
The BarcodeReader provides the following barcode read methods:
Method | Description |
---|---|
ReadBarcode(RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology symbology) and ReadBarcode(RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology symbology, BarcodeReadOptions options) |
Read one barcode from an image with specified symbology and default or specific options. Use these methods if you want to read a single barcode from the image, for example, a QR symbol by specifying BarcodeSymbology.QR or if you want to read any barcode found regardless of its type by using BarcodeSymbology.Unknown. |
ReadBarcode(RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology[] symbologies) and ReadBarcode(RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology[] symbologies, BarcodeReadOptions[] options) |
Read one barcode from an image with a symbology from a specified group and default or specific options. Use these methods if you want to read a single barcode from a known group. For example, to read a barcode that can be of any UPC type, pass an array of BarcodeSymbology.UPCA and BarcodeSymbology.UPCE. |
ReadBarcodes(RasterImage image, LogicalRectangle searchBounds, int maximumBarcodes, BarcodeSymbology[] symbologies) and ReadBarcodes(RasterImage image, LogicalRectangle searchBounds, int maximumBarcodes, BarcodeSymbology[] symbologies, BarcodeReadOptions[] options) |
Read multiple barcodes from an image with symbologies from a specified group and default or specific options. Use these methods if you want to read multiple barcodes of the same or multiple symbologies. |
Public Sub BarcodeReader_ReadBarcodeExample2() Dim imageFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Barcode2.tif") ' Create a Barcode engine Dim engine As New BarcodeEngine() ' Get the Barcode reader instance Dim reader As BarcodeReader = engine.Reader Using codecs As New RasterCodecs() Using image As RasterImage = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1) ' Invert the image Console.WriteLine("Inverting the image") Dim invert As New Leadtools.ImageProcessing.Color.InvertCommand() invert.Run(image) ' All barcodes have default options of black foreground color and white background color, so ' reading the barcode with default options should not return any barcodes right now ' Read the QR barcode from this image using default options Console.WriteLine("Reading using default options") Dim barcode As BarcodeData = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR, Nothing) ' Show its location and data if found ' This will print out "Not found" If Not IsNothing(barcode) Then Console.WriteLine("Found at {0}, data:\n{1}", barcode.Bounds, barcode.Value) Else Console.WriteLine("Not found") End If ' Now create QR read options to have white foreground color and black background color Dim qrReadOptions As New QRBarcodeReadOptions() qrReadOptions.ForeColor = RasterColor.FromKnownColor(RasterKnownColor.White) qrReadOptions.BackColor = RasterColor.FromKnownColor(RasterKnownColor.Black) ' And use it to try to read the QR barcode again Console.WriteLine("Reading using specific options that instruct the engine to look for white on black barcodes") barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR, qrReadOptions) ' Show its location and data if found ' This will find the barcode and print its information now If Not IsNothing(barcode) Then Console.WriteLine("Found at {0}, data:\n{1}", barcode.Bounds, barcode.Value) Else Console.WriteLine("Not found") End If End Using End Using End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
public void BarcodeReader_ReadBarcodeExample2() { string imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "Barcode2.tif"); // Create a Barcode engine BarcodeEngine engine = new BarcodeEngine(); // Get the Barcode reader instance BarcodeReader reader = engine.Reader; using(RasterCodecs codecs = new RasterCodecs()) { using(RasterImage image = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1)) { // Invert the image Console.WriteLine("Inverting the image"); Leadtools.ImageProcessing.Color.InvertCommand invert = new Leadtools.ImageProcessing.Color.InvertCommand(); invert.Run(image); // All barcodes have default options of black foreground color and white background color, so // reading the barcode with default options should not return any barcodes right now // Read the QR barcode from this image using default options Console.WriteLine("Reading using default options"); BarcodeData barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR, null); // Show its location and data if found // This will print out "Not found" if(barcode != null) { Console.WriteLine("Found at {0}, data:\n{1}", barcode.Bounds, barcode.Value); } else { Console.WriteLine("Not found"); } // Now create QR read options to have white foreground color and black background color QRBarcodeReadOptions qrReadOptions = new QRBarcodeReadOptions(); qrReadOptions.ForeColor = RasterColor.FromKnownColor(RasterKnownColor.White); qrReadOptions.BackColor = RasterColor.FromKnownColor(RasterKnownColor.Black); // And use it to try to read the QR barcode again Console.WriteLine("Reading using specific options that instruct the engine to look for white on black barcodes"); barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR, qrReadOptions); // Show its location and data if found // This will find the barcode and print its information now if(barcode != null) { Console.WriteLine("Found at {0}, data:\n{1}", barcode.Bounds, barcode.Value); } else { Console.WriteLine("Not found"); } } } } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }
public void BarcodeReader_ReadBarcodeExample2(RasterImage image) { // Create a Barcode engine BarcodeEngine engine = new BarcodeEngine(); // Get the Barcode reader instance BarcodeReader reader = engine.Reader; RasterCodecs codecs = new RasterCodecs(); // Invert the image Console.WriteLine("Inverting the image"); Leadtools.ImageProcessing.Color.InvertCommand invert = new Leadtools.ImageProcessing.Color.InvertCommand(); invert.Run(image); // All barcodes have default options of black foreground color and white background color, so // reading the barcode with default options should not return any barcodes right now // Read the QR barcode from this image using default options Console.WriteLine("Reading using default options"); BarcodeData barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR, null); // Show its location and data if found // This will print out "Not found" if(barcode != null) { Console.WriteLine("Found at {0}, data:\n{1}", barcode.Bounds, barcode.Value); } else { Console.WriteLine("Not found"); } // Now create QR read options to have white foreground color and black background color QRBarcodeReadOptions qrReadOptions = new QRBarcodeReadOptions(); qrReadOptions.ForeColor = RasterColor.FromKnownColor(RasterKnownColor.White); qrReadOptions.BackColor = RasterColor.FromKnownColor(RasterKnownColor.Black); // And use it to try to read the QR barcode again Console.WriteLine("Reading using specific options that instruct the engine to look for white on black barcodes"); barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR, qrReadOptions); // Show its location and data if found // This will find the barcode and print its information now if(barcode != null) { Console.WriteLine("Found at {0}, data:\n{1}", barcode.Bounds, barcode.Value); } else { Console.WriteLine("Not found"); } }
Public Sub BarcodeReader_ReadBarcodeExample2(ByVal image As RasterImage) ' Create a Barcode engine Dim engine As BarcodeEngine = New BarcodeEngine() ' Get the Barcode reader instance Dim reader As BarcodeReader = engine.Reader Dim codecs As RasterCodecs = New RasterCodecs() ' Invert the image Console.WriteLine("Inverting the image") Dim invert As InvertCommand = New InvertCommand() invert.Run(image) ' All barcodes have default options of black foreground color and white background color, so ' reading the barcode with default options should not return any barcodes right now ' Read the QR barcode from this image using default options Console.WriteLine("Reading using default options") Dim barcode As BarcodeData = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR, Nothing) ' Show its location and data if found ' This will print out "Not found" If Not barcode Is Nothing Then Console.WriteLine("Found at {0}, data:" & Constants.vbLf & "{1}", barcode.Bounds, barcode.Value) Else Console.WriteLine("Not found") End If ' Now create QR read options to have white foreground color and black background color Dim qrReadOptions As QRBarcodeReadOptions = New QRBarcodeReadOptions() qrReadOptions.ForeColor = RasterColor.FromKnownColor(RasterKnownColor.White) qrReadOptions.BackColor = RasterColor.FromKnownColor(RasterKnownColor.Black) ' And use it to try to read the QR barcode again Console.WriteLine("Reading using specific options that instruct the engine to look for white on black barcodes") barcode = reader.ReadBarcode(image, LogicalRectangle.Empty, BarcodeSymbology.QR, qrReadOptions) ' Show its location and data if found ' This will find the barcode and print its information now If Not barcode Is Nothing Then Console.WriteLine("Found at {0}, data:" & Constants.vbLf & "{1}", barcode.Bounds, barcode.Value) Else Console.WriteLine("Not found") End If End Sub
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
BarcodeReader Class
BarcodeReader Members
Overload List
ReadBarcode(RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology symbology)
ReadBarcode(RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology[] symbologies)
ReadBarcode(RasterImage image, LogicalRectangle searchBounds, BarcodeSymbology[] symbologies, BarcodeReadOptions[] options)
ReadBarcodes(RasterImage image, LogicalRectangle searchBounds, int maximumBarcodes, BarcodeSymbology[] symbologies)
ReadBarcodes(RasterImage image, LogicalRectangle searchBounds, int maximumBarcodes, BarcodeSymbology[] symbologies, BarcodeReadOptions[] options)
Programming with LEADTOOLS Barcode
Supported Barcode Symbologies
Unlocking Barcode Support
Reading Barcodes Tutorial