Läs streckkod från bild i C#

Letar du efter ett sätt att läsa streckkoder eller QR-koder från bilder programmatiskt? Om du är en utvecklare och behöver skapa din egen streckkodsläsare? Du har kommit till rätt ställe. Streckkoder är avgörande för korrekt spårning av lager och leverans av produkter från tillverkning till försäljningsställe. Vi kan enkelt upptäcka, känna igen och läsa olika typer av streckkoder och QR-koder i .NET-applikationer. I den här artikeln visar vi dig hur du läser en streckkod från en bild i C# genom att bara följa några enkla steg. Du kan använda den här artikeln som en steg-för-steg-guide för att utveckla streckkodsläsare eller skannerapplikationer.

Först ska vi ta en titt på C# Barcode Reader API för att läsa streckkoderna som finns tillgängliga i inmatningsbilden. Därefter går vi igenom stegen för hur man upptäcker, känner igen och extraherar streckkodsdata från bilden. Du hittar detaljerade steg och kodavsnitt. Slutligen kommer vi att tillhandahålla användbara länkar för ytterligare förbättringar. Så låt oss komma igång!

Följande ämnen kommer att behandlas i den här artikeln:

  1. C# API för att läsa streckkod från bild
  2. Steg för att läsa streckkod från en bild
  3. Läs streckkod från bitmapp
  4. Läs streckkod från bild med Stream
  5. Hur man läser streckkoder av specifik typ
  6. Läs streckkoder av flera typer från en bild
  7. Detektera och läs fördefinierade uppsättningar symbologier
  8. Detektera och läs flera streckkoder från en bild
  9. Hämta X- och Y-koordinater för streckkod
  10. Läs streckkod från specifik bildregion
  11. Läs streckkod från flera bildområden

C# API för att läsa streckkod från bild

För att läsa en streckkod från en bild kommer vi att använda Aspose.BarCode for .NET API. API:et gör det möjligt att generera, skanna och läsa ett brett utbud av streckkodssymbologier. Det möjliggör rendering av streckkodsbilder i formatet JPEG, TIFF, PNG, BMP och GIF.

API:et tillhandahåller klassen BarCodeReader som möjliggör igenkänning av mer än 60 olika streckkodstyper från givna bilder. Det första steget för att upptäcka streckkoder är att ange källan till en bild med streckkoder. Detta kan vara en fil, ett bitmappsobjekt eller en ström. Det är då nödvändigt att specificera målsymboler inom parametern DecodeType. Vi kan se över alla olika typer av symbologier som stöds genom att specificera DecodeType.AllSupportedTypes. Metoden ReadBarCodes() för den här klassen returnerar en array av igenkända streckkoder. Klassen BarCodeResult i API:et lagrar de igenkända streckkodsdata som streckkodstyp, kodtext, region och andra parametrar.

API:et gör det också möjligt att specificera regionerna i en bild streckkodsläsaren ska läsa. Detta kan åstadkommas med ett .NET Rectangle-objekt och gör det möjligt att undvika behovet av att hitta streckkoder i bildområden som inte innehåller några streckkoder som standard.

Vänligen antingen ladda ned API:ets DLL eller installera den med NuGet.

PM> Install-Package Aspose.BarCode 

Läs streckkod från en bild med C#

Vi kan enkelt läsa en streckkod från en bild genom att följa stegen nedan:

  1. Först laddar du en bild med klassen BarCodeReader.
  2. Anropa metoden readBarCodes() och få igenkänningsresultat i klassobjektet BarCodeResult.
  3. Slutligen, gå igenom resultaten och visa streckkodens typ och text.

Följande kodexempel visar hur man läser en streckkod från en bild i C#.

// Detta kodexempel visar hur man läser streckkoder från en bildfil.
// Initiera streckkodsläsaren
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Sample.png");

// Läs streckkoden och visa resultat
foreach(BarCodeResult result in reader.ReadBarCodes()) 
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Läs streckkod från en bild.

Läs streckkod från en bild i C#.

Läs streckkod från Bitmap i C#

Vi kan enkelt läsa en streckkod från en bild genom att följa stegen nedan:

  1. Först laddar du en bild med hjälp av Bitmap-klassen.
  2. Skapa sedan en instans av klassen BarCodeReader med Bitmap-objekt.
  3. Anropa metoden ReadBarCodes() och få igenkänningsresultat i klassobjektet BarCodeResult.
  4. Slutligen, gå igenom resultaten och visa streckkodens typ och text.

Följande kodexempel visar hur man läser en streckkod från bitmapp i C#.

// Detta kodexempel visar hur man läser streckkod från bitmapp.
// Ladda bilden i Bitmap
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\Code128.jpg");

// Initiera streckkodsläsaren
BarCodeReader reader = new BarCodeReader(bmp);

// Läs alla streckkoder i det angivna området
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Läs streckkod från bitmappsbild i C#.

Läs streckkod från Bitmap i C#.

Läs streckkod från bild med Stream i C#

Vi kan också ladda streckkodsbilden med hjälp av en filström och läsa en streckkod genom att följa stegen nedan:

  1. Först laddar du en bild med FileStream-klassen.
  2. Skapa sedan en instans av klassen BarCodeReader med strömobjekt.
  3. Anropa metoden ReadBarCodes() och få igenkänningsresultat i klassobjektet BarCodeResult.
  4. Slutligen, gå igenom resultaten och visa streckkodens typ och text.

Följande kodexempel visar hur man läser en streckkod från bild med Stream i C#.

// Detta kodexempel visar hur man läser streckkoder från en bild med hjälp av filström.
// Ladda bilden
Stream stream = new FileStream("C:\\Files\\BarCode\\MultipleBarcodes.jpeg", FileMode.Open, FileAccess.Read);

// Initiera streckkodsläsaren
BarCodeReader reader = new BarCodeReader(stream);

// Läs alla streckkoder i det angivna området
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}

Läs streckkod av specifik typ från bild i C#

Det rekommenderas att välja streckkodssymboler som kommer att övervägas för igenkänning för att minimera den tid som krävs för att slutföra igenkänningen och undvika försök att känna igen föråldrade streckkoder.

Vi kan ange målstreckkodstyp och läsa streckkod från en bild genom att följa stegen nedan:

  1. Först laddar du en bild med klassen BarCodeReader.
  2. Ställ sedan in en streckkodsavkodningstyp, till exempel Code39Standard.
  3. Efter det får du igenkänningsresultat i BarCodeResult-klassobjektet med metoden ReadBarCodes().
  4. Slutligen, gå igenom resultaten och visa streckkodens typ och text.

Följande kodexempel visar hur man läser en streckkod av en specifik typ från en bild med C#.

// Detta kodexempel visar hur man läser streckkoder av en specifik avkodningstyp från en bild.
// Initiera streckkodsläsaren
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.Code39Standard);

// Läs streckkod av typen Code39Extended
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Känn igen streckkoder av en specifik typ från bild

Känn igen streckkoder av en specifik typ från bild i C#.

Läs streckkoder av flera typer från bild i C#

Vi kan också specificera flera streckkodstyper genom att följa stegen nedan:

  1. Först laddar du en bild med klassen BarCodeReader.
  2. Ställ sedan in en streckkodsavkodningstyp med metoden SetBarCodeReadType() .
  3. Efter det får du igenkänningsresultat i BarCodeResult-klassobjektet med metoden ReadBarCodes().
  4. Slutligen, gå igenom resultaten och visa streckkodens typ och text.

Följande kodexempel visar hur man läser streckkoder av flera typer från en bild med C#.

// Detta kodexempel visar hur man läser streckkoder av flera avkodningstyper från en bild.
// Initiera streckkodsläsaren
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png");
reader.SetBarCodeReadType(DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

// Läs streckkoder
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Läs streckkoder av flera typer från bild i C#

Läs streckkoder av flera typer från bild i C#

Vi kan också specificera flera avkodningstyper i konstruktorn för BarCodeReader-klassen som visas nedan:

BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

Läs fördefinierad uppsättning streckkodstyper från bild i C#

Vi kan läsa en fördefinierad uppsättning symbologier för igenkänning definierade i klassen DecodeTypes. Vi kan ställa in någon av följande fördefinierade uppsättningar:

  • AllSupportedTypes - alla streckkodstyper som stöds
  • Types1D - alla 1D-symboliker som stöds
  • Types2D - alla 2D-symboler som stöds
  • PostalTypes - alla stödda postsymboler som huvudsakligen används av posttjänster
  • MostCommonTypes - en uppsättning av de mest använda streckkodsstandarder definierade

Vi kan specificera en fördefinierad uppsättning genom att följa stegen nedan:

  1. För det första, För det första, ladda en bild med klassen BarCodeReader.
  2. Ställ sedan in en streckkodsavkodningstyp i BarCodeReader-konstruktorn eller SetBarCodeReadType-metoden, till exempel DecodeType.Types2D.
  3. Efter det får du igenkänningsresultat i BarCodeResult-klassobjektet med metoden ReadBarCodes().
  4. Slutligen, gå igenom resultaten och visa streckkodens typ och text.

Följande kodexempel visar hur man läser en streckkod med fördefinierade uppsättningar symbologier i C#.

// Det här kodexemplet visar hur man läser en streckkod med fördefinierade uppsättningar symboler.
// Initiera streckkodsläsaren
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.Types1D);

// Läs streckkoden och visa resultat
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Läs fördefinierad uppsättning streckkodstyper från bild i C#

Läs fördefinierad uppsättning streckkodstyper från bild i C#

Läs flera streckkoder från bild i C#

Vi kan också läsa alla tillgängliga streckkoder från en bild genom att följa stegen nedan:

  1. Först laddar du en bild med klassen BarCodeReader.
  2. Ställ sedan in en streckkodsavkodningstyp som ALLSUPPORTEDTYPES.
  3. Efter det får du igenkänningsresultat i BarCodeResult-klassobjektet med metoden ReadBarCodes().
  4. Slutligen, gå igenom resultaten och visa streckkodens typ och text.

Följande kodexempel visar hur man läser flera streckkoder från en bild med C#.

// Detta kodexempel visar hur man läser flera streckkoder från en bild.
// Initiera streckkodsläsaren
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.AllSupportedTypes);

// Läs alla typer av streckkoder som finns på inmatningsbilden
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Läs flera streckkoder från bild.

Läs flera streckkoder från en bild.

Få X- och Y-koordinater för streckkod med C#

Vi kan läsa X- och Y-koordinaterna för den upptäckta streckkoden från en bild genom att följa stegen nedan:

  1. Först laddar du en bild med klassen BarCodeReader.
  2. Hämta sedan igenkänningsresultat i BarCodeResult-klassobjektet med metoden ReadBarCodes().
  3. Gå sedan igenom resultaten och kontrollera om regionen inte är null.
  4. Efter det får du Points-arrayen som avgränsar streckkodsområdet med hjälp av Points.
  5. Visa slutligen streckkodens X- och Y-punkter.

Följande kodexempel visar hur man får X- och Y-koordinatpunkterna för en streckkod från en bild med C#.

// Detta kodexempel visar hur man läser X- och Y-regionpunkt för streckkoder från en bild.
// Initiera streckkodsläsaren
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.AllSupportedTypes);

// Läs streckkoden
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    if (result.Region != null)
    {
        // Visa x- och y-koordinater för alla upptäckta streckkoder
        Point[] point = result.Region.Points;
        Console.Out.WriteLine("Top left coordinates: X = " + point[0].X + ", Y = " + point[0].Y);
        Console.Out.WriteLine("Bottom left coordinates: X = " + point[1].X + ", Y = " + point[1].Y);
        Console.Out.WriteLine("Bottom right coordinates: X = " + point[2].X + ", Y = " + point[2].Y);
        Console.Out.WriteLine("Top right coordinates: X = " + point[3].X + ", Y = " + point[3].Y);
    }
}
Få X- och Y-koordinater för streckkoder

Få X- och Y-koordinater för en streckkod från en bild.

Läs streckkod från specifik bildregion i C#

Vi kan läsa en streckkod från en specifik region eller ett område av en bild genom att följa stegen nedan:

  1. Läs först buffertdata för en bildfil med hjälp av Bitmap-metoden.
  2. Skapa sedan en instans av klassen BarCodeReader. Den tar en bild, ett rektangelområde och en avkodningstyp som argument.
  3. Efter det får du igenkänningsresultat i BarCodeResult-klassobjektet med metoden ReadBarCodes().
  4. Slutligen, gå igenom resultaten och visa streckkodens typ och text.

Följande kodexempel visar hur man läser en streckkod från en specifik del av en bild med C#.

// Detta kodexempel visar hur man läser streckkoder från en viss del av en bild.
// Ladda bilden
Bitmap img = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.jpeg");

// Skapa en instans av klassen BarCodeReader
// och ange ett område för att leta efter streckkoden
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 400, 200));

// Läs alla streckkoder i det angivna området
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Läs streckkoden från en viss bildregion.

Läs streckkoder från en specifik region av en bild i C#.

Läs streckkod från flera bildområden i C#

Vi kan också läsa streckkoder från flera regioner i en bild genom att följa stegen nedan:

  1. Först laddar du en bild med hjälp av Bitmap-klassen.
  2. Definiera sedan rektanglar med klassen Rectangle.
  3. Skapa sedan en instans av klassen BarCodeReader.
  4. Under tiden anropar SetBarCodeImage() med ett bildobjekt och rektanglar som argument.
  5. Alternativt kan du ställa in streckkodslästyper med metoden SetBarCodeReadType() .
  6. Efter det får du igenkänningsresultat i BarCodeResult-klassobjektet med metoden ReadBarCodes().
  7. Slutligen, gå igenom resultaten och visa streckkodens typ och text.

Följande kodexempel visar hur man läser en streckkod från flera delar av en bild med C#.

// Detta kodexempel visar hur man läser streckkoder från en viss del av en bild.
// Ladda bilden i Bitmap
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.png");

// Rektangel av en 2D-streckkod i källbilden
Rectangle rect2D = new Rectangle(0, 0, 400, 200);

// Rektangel med Code128 streckkod i källbilden
Rectangle rectCode128 = new Rectangle(450, 100, 600, 180);

// Initiera streckkodsläsaren
BarCodeReader reader = new BarCodeReader();
reader.SetBarCodeImage(bmp, new Rectangle[] { rect2D, rectCode128 });
reader.SetBarCodeReadType(DecodeType.AllSupportedTypes);

// Läs alla streckkoder i det angivna området
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Läs streckkoder från flera bildområden.

Läs streckkoder från flera regioner i en bild i C#.

Skaffa en gratis licens

Du kan få en gratis tillfällig licens för att prova biblioteket utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har vi lärt oss hur man:

  • Ladda streckkod bildfil;
  • Läs bilder som bitmapp eller med filström;
  • känna igen streckkoder av olika typer från en bild;
  • läsa streckkodskoordinater;
  • upptäcka och läsa flera streckkoder från en enda bild;
  • upptäcka och läsa streckkoder från ett specifikt område av en bild.

Förutom att läsa streckkoder från en bild i C# kan du lära dig mer om Aspose.BarCode för .NET API med dokumentation. I händelse av oklarheter är du välkommen att kontakta oss på vårt gratis supportforum.

Se även