VintaSoft Barcode .NET SDK 16.0: Руководство для .NET разработчика
Vintasoft.Barcode Namespace / BarcodeReader Class / ReadBarcodes Methods / ReadBarcodes(Stream) Method
Синтаксис Пример Требования Смотрите также
В этом разделе
ReadBarcodes(Stream) Метод (BarcodeReader)
В этом разделе
Распознает штрих-коды из указанного потока.
Синтаксис
'Declaration

Public Overloads Function ReadBarcodes( _
ByVal stream
Поток, содержащий изображение.
As System.IO.Stream _
) As IBarcodeInfo[]
public IBarcodeInfo[] ReadBarcodes(
System.IO.Stream stream
)

Parameters

stream
Поток, содержащий изображение.

Return Value

Массив объектов IBarcodeInfo, который содержит информацию о распознанных штрих-кодах.
Пример

Вот простой пример, демонстрирующий, как обнаруживать штрих-коды на изображении.

   
Imports System.IO   
Imports Vintasoft.Barcode   
Imports Vintasoft.Barcode.SymbologySubsets   
   
''' <summary>
''' Test that shows how read barcodes from image,
''' which is stored in stream, using the BarcodeReader class.
''' </summary>
Class ReadBarcodesFromStreamExample   
    ''' <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()   
   
        ' open the stream
        Using barcodeImageStream As Stream = New FileStream("test1.jpg", FileMode.Open, FileAccess.Read)   
            ' read barcodes from image, which is stored in stream
            ReadBarcodes(barcodeImageStream)   
        End Using   
    End Sub   
   
    ''' <summary>
    ''' Reads barcodes from image, which is stored in stream.
    ''' </summary>
    Private Shared Sub ReadBarcodes(stream As Stream)   
        ' 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 stored in stream
            Dim infos As IBarcodeInfo() = reader.ReadBarcodes(stream)   
   
            ' 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 System.IO;
using Vintasoft.Barcode;
using Vintasoft.Barcode.SymbologySubsets;

/// <summary>
/// Test that shows how read barcodes from image,
/// which is stored in stream, using the BarcodeReader class.
/// </summary>
class ReadBarcodesFromStreamExample
{
    /// <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();

        // open the stream
        using (Stream barcodeImageStream = new FileStream("test1.jpg", FileMode.Open, FileAccess.Read))
        {
            // read barcodes from image, which is stored in stream
            ReadBarcodes(barcodeImageStream);
        }
    }

    /// <summary>
    /// Reads barcodes from image, which is stored in stream.
    /// </summary>
    static void ReadBarcodes(Stream stream)
    {
        // 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 stored in stream
            IBarcodeInfo[] infos = reader.ReadBarcodes(stream);

            // 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();
                }
            }
        }
    }

}

Требования

Целевые платформы: .NET 10; .NET 9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

Смотрите также