VintaSoft Barcode .NET SDK 16.1: Documentation for .NET developer
Vintasoft.Barcode Namespace / BarcodeReader Class / ReadBarcodes Methods / ReadBarcodes(VintasoftBitmap) Method
Syntax Example Requirements SeeAlso
In This Topic
ReadBarcodes(VintasoftBitmap) Method (BarcodeReader)
In This Topic
Reads barcodes from the specified bitmap.
Syntax

Parameters

bitmap
The bitmap.

Return Value

An array of IBarcodeInfo objects which contains information about recognized barcodes.
Example

Here is a simple example that demonstrates how to detect barcodes in an image.

   
   
Imports Vintasoft.Imaging   
   
Imports Vintasoft.Barcode   
Imports Vintasoft.Barcode.SymbologySubsets   
   
''' <summary>
''' Test that shows how read barcodes from image using the BarcodeReader class.
''' </summary>
Class ReadBarcodesFromImageExample   
   
    ''' <summary>
    ''' Runs the test.
    ''' </summary>
    Public Shared Sub Test()   
        ' init the AI-based barcode region detector for 1D and 2D barcodes - AI-based barcode region detector can greatly increase
        ' the barcode recognition if you need to recognize barcodes in large images
        Ai1DAssembly.Init()   
        Ai2DAssembly.Init()   
   
        ' load image from file
        Using barcodeImage As VintasoftBitmap = ImageCodecs.[Default].Decode("test1.jpg")   
            ' read barcodes from image
            ReadBarcodes(barcodeImage)   
        End Using   
    End Sub   
   
    ''' <summary>
    ''' Reads barcodes from image.
    ''' </summary>
    Private Shared Sub ReadBarcodes(barcodeImage As VintasoftBitmap)   
        ' create barcode reader
        Using reader As New BarcodeReader()   
            ' specify that reader must search for Code39, Code39Extended,
            ' Code128, SSCC18 and DataMatrix barcodes
            reader.Settings.ScanBarcodeTypes = BarcodeType.Code39 Or BarcodeType.Code128 Or BarcodeType.DataMatrix   
            reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.Code39Extended)   
            reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.SSCC18)   
   
            ' read barcodes from image
            Dim infos As IBarcodeInfo() = reader.ReadBarcodes(barcodeImage)   
   
            ' show barcode recognition results
   
            Console.WriteLine(String.Format("Recognition time {0} ms.", reader.RecognizeTime.TotalMilliseconds))   
   
            If infos.Length = 0 Then   
                Console.WriteLine("No barcodes found.")   
            Else   
                Console.WriteLine(String.Format("{0} barcodes found:", infos.Length))   
                Console.WriteLine()   
                For i As Integer = 0 To infos.Length - 1   
                    Dim info As IBarcodeInfo = infos(i)   
                    Console.WriteLine(String.Format("[{0}:{1}]", i, info.BarcodeType))   
                    Console.WriteLine(String.Format("Value:      {0}", info.Value))   
                    Console.WriteLine(String.Format("Confidence: {0}%", Math.Round(info.Confidence)))   
                    Console.WriteLine(String.Format("Threshold:  {0}", info.Threshold))   
                    Console.WriteLine(String.Format("Region:     {0}", info.Region))   
                    Console.WriteLine()   
                Next   
            End If   
        End Using   
    End Sub   
   
End Class


using System;

using Vintasoft.Imaging;

using Vintasoft.Barcode;
using Vintasoft.Barcode.SymbologySubsets;

/// <summary>
/// Test that shows how read barcodes from image using the BarcodeReader class.
/// </summary>
class ReadBarcodesFromImageExample
{

    /// <summary>
    /// Runs the test.
    /// </summary>
    public static void Test()
    {
        // init the AI-based barcode region detector for 1D and 2D barcodes - AI-based barcode region detector can greatly increase
        // the barcode recognition if you need to recognize barcodes in large images
        Ai1DAssembly.Init();
        Ai2DAssembly.Init();

        // load image from file
        using (VintasoftBitmap barcodeImage = ImageCodecs.Default.Decode("test1.jpg"))
        {
            // read barcodes from image
            ReadBarcodes(barcodeImage);
        }
    }

    /// <summary>
    /// Reads barcodes from image.
    /// </summary>
    static void ReadBarcodes(VintasoftBitmap barcodeImage)
    {
        // create barcode reader
        using (BarcodeReader reader = new BarcodeReader())
        {
            // specify that reader must search for Code39, Code39Extended,
            // Code128, SSCC18 and DataMatrix barcodes
            reader.Settings.ScanBarcodeTypes =
                BarcodeType.Code39 |
                BarcodeType.Code128 |
                BarcodeType.DataMatrix;
            reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.Code39Extended);
            reader.Settings.ScanBarcodeSubsets.Add(BarcodeSymbologySubsets.SSCC18);

            // read barcodes from image
            IBarcodeInfo[] infos = reader.ReadBarcodes(barcodeImage);

            // show barcode recognition results

            Console.WriteLine(string.Format("Recognition time {0} ms.",
                reader.RecognizeTime.TotalMilliseconds));

            if (infos.Length == 0)
            {
                Console.WriteLine("No barcodes found.");
            }
            else
            {
                Console.WriteLine(string.Format("{0} barcodes found:", infos.Length));
                Console.WriteLine();
                for (int i = 0; i < infos.Length; i++)
                {
                    IBarcodeInfo info = infos[i];
                    Console.WriteLine(string.Format("[{0}:{1}]", i, info.BarcodeType));
                    Console.WriteLine(string.Format("Value:      {0}", info.Value));
                    Console.WriteLine(string.Format("Confidence: {0}%", Math.Round(info.Confidence)));
                    Console.WriteLine(string.Format("Threshold:  {0}", info.Threshold));
                    Console.WriteLine(string.Format("Region:     {0}", info.Region));
                    Console.WriteLine();
                }
            }
        }
    }

}

Requirements

Target Platforms: .NET 11; .NET 10; .NET 9; .NET 8; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

See Also