Číst čárový kód z obrázku v C#

Hledáte způsob, jak programově číst čárové kódy nebo QR kódy z obrázků? Jste-li vývojář a potřebujete vytvořit vlastní aplikaci pro čtení čárových kódů? Jste na správném místě. Čárové kódy jsou klíčové pro přesné sledování zásob a dodání produktů z výroby do místa prodeje. Můžeme snadno detekovat, rozpoznávat a číst různé typy čárových kódů a QR kódů v aplikacích .NET. V tomto článku vám ukážeme, jak číst čárový kód z obrázku v C# pomocí několika jednoduchých kroků. Tento článek můžete použít jako průvodce krok za krokem pro vývoj aplikací čtečky čárových kódů nebo skeneru.

Nejprve se podíváme na C# Barcode Reader API, abychom mohli číst čárové kódy dostupné ve vstupním obrázku. Dále si projdeme kroky, jak detekovat, rozpoznávat a extrahovat data čárového kódu z obrázku. Najdete zde podrobné kroky a úryvky kódu. Nakonec poskytneme užitečné odkazy pro další vylepšení. Pojďme tedy začít!

V tomto článku se budeme zabývat následujícími tématy:

  1. C# API pro čtení čárového kódu z obrázku
  2. Kroky ke čtení čárového kódu z obrázku
  3. Přečíst čárový kód z bitmapy
  4. Přečíst čárový kód z obrázku pomocí streamu
  5. Jak číst čárový kód konkrétního typu
  6. Přečíst čárové kódy více typů z obrázku
  7. Rozpoznat a přečíst předdefinované sady symbolů
  8. Detekce a čtení více čárových kódů z obrázku
  9. Získejte souřadnice X a Y čárového kódu
  10. Přečíst čárový kód ze specifické oblasti obrázku
  11. Přečíst čárový kód z více oblastí obrázku

C# API pro čtení čárového kódu z obrázku

Pro čtení čárového kódu z obrázku budeme používat API Aspose.BarCode for .NET. API umožňuje generování, skenování a čtení široké škály symbol čárových kódů. Umožňuje vykreslování obrázků čárových kódů ve formátu JPEG, TIFF, PNG, BMP a GIF.

API poskytuje třídu BarCodeReader, která umožňuje rozpoznání více než 60 různých typů čárových kódů z daných obrázků. Prvním krokem při detekci čárových kódů je specifikovat zdroj obrázku pomocí čárových kódů. Může to být soubor, bitmapový objekt nebo datový proud. Poté je nutné specifikovat cílové symboliky v parametru DecodeType. Můžeme se podívat na všechny různé typy podporovaných symbologií zadáním DecodeType.AllSupportedTypes. Metoda ReadBarCodes() této třídy vrací pole rozpoznaných čárových kódů. Třída BarCodeResult API ukládá rozpoznaná data čárového kódu, jako je typ čárového kódu, text kódu, region a další parametry.

API také umožňuje specifikovat oblasti obrázku, které má čtečka čárových kódů přečíst. Toho lze dosáhnout pomocí objektu .NET Rectangle a umožňuje vyhnout se nutnosti hledat čárové kódy v oblastech obrázku, které ve výchozím nastavení žádné čárové kódy neobsahují.

Prosím buď stáhněte si DLL rozhraní API, nebo jej nainstalujte pomocí NuGet.

PM> Install-Package Aspose.BarCode 

Čtení čárového kódu z obrázku pomocí C#

Čárový kód můžeme snadno přečíst z obrázku podle následujících kroků:

  1. Nejprve načtěte obrázek pomocí třídy BarCodeReader.
  2. Zavolejte metodu readBarCodes() a získejte výsledky rozpoznání v objektu třídy BarCodeResult.
  3. Nakonec projděte výsledky a zobrazte typ a text čárového kódu.

Následující ukázka kódu ukazuje, jak číst čárový kód z obrázku v C#.

// Tento příklad kódu ukazuje, jak číst čárový kód ze souboru obrázku.
// Inicializujte čtečku čárových kódů
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Sample.png");

// Přečtěte si čárový kód a zobrazte výsledky
foreach(BarCodeResult result in reader.ReadBarCodes()) 
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Čtení čárového kódu z obrázku.

Čtení čárového kódu z obrázku v C#.

Číst čárový kód z bitmapy v C#

Čárový kód můžeme snadno přečíst z obrázku podle následujících kroků:

  1. Nejprve načtěte obrázek pomocí třídy Bitmap.
  2. Dále vytvořte instanci třídy BarCodeReader s objektem Bitmap.
  3. Zavolejte metodu ReadBarCodes() a získejte výsledky rozpoznání v objektu třídy BarCodeResult.
  4. Nakonec projděte výsledky a zobrazte typ a text čárového kódu.

Následující ukázka kódu ukazuje, jak číst čárový kód z bitmapy v C#.

// Tento příklad kódu ukazuje, jak číst čárový kód z bitmapy.
// Načíst obrázek v bitmapě
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\Code128.jpg");

// Inicializujte čtečku čárových kódů
BarCodeReader reader = new BarCodeReader(bmp);

// Přečtěte si všechny čárové kódy v určené oblasti
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Čtení čárového kódu z bitmapového obrázku v C#.

Čtení čárového kódu z bitmapy v C#.

Číst čárový kód z obrázku pomocí Stream v C#

Můžeme také načíst obrázek čárového kódu pomocí datového proudu souboru a přečíst čárový kód podle následujících kroků:

  1. Nejprve načtěte obrázek pomocí třídy FileStream.
  2. Dále vytvořte instanci třídy BarCodeReader s objektem stream.
  3. Zavolejte metodu ReadBarCodes() a získejte výsledky rozpoznání v objektu třídy BarCodeResult.
  4. Nakonec projděte výsledky a zobrazte typ a text čárového kódu.

Následující ukázka kódu ukazuje, jak číst čárový kód z obrázku pomocí Stream v C#.

// Tento příklad kódu ukazuje, jak číst čárový kód z obrázku pomocí datového proudu souboru.
// Načíst obrázek
Stream stream = new FileStream("C:\\Files\\BarCode\\MultipleBarcodes.jpeg", FileMode.Open, FileAccess.Read);

// Inicializujte čtečku čárových kódů
BarCodeReader reader = new BarCodeReader(stream);

// Přečtěte si všechny čárové kódy v určené oblasti
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}

Číst čárový kód konkrétního typu z obrázku v C#

Doporučuje se vybrat cílové symboliky čárových kódů, které budou zvažovány pro rozpoznání, aby se minimalizovala doba potřebná k dokončení rozpoznávání a zabránilo se pokusům o rozpoznání zastaralých čárových kódů.

Můžeme určit cílový typ čárového kódu a přečíst čárový kód z obrázku podle následujících kroků:

  1. Nejprve načtěte obrázek pomocí třídy BarCodeReader.
  2. Dále nastavte typ dekódování čárového kódu, například Code39Standard.
  3. Poté získejte výsledky rozpoznání v objektu třídy BarCodeResult pomocí metody ReadBarCodes().
  4. Nakonec projděte výsledky a zobrazte typ a text čárového kódu.

Následující ukázka kódu ukazuje, jak číst čárový kód konkrétního typu z obrázku pomocí C#.

// Tento příklad kódu ukazuje, jak číst čárový kód určitého typu dekódování z obrázku.
// Inicializujte čtečku čárových kódů
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.Code39Standard);

// Čtení čárového kódu typu Code39Extended
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Rozpoznejte čárový kód konkrétního typu z obrázku

Rozpoznejte čárový kód určitého typu z obrázku v C#.

Číst čárový kód více typů z obrázku v C#

Můžeme také určit více typů čárových kódů podle následujících kroků:

  1. Nejprve načtěte obrázek pomocí třídy BarCodeReader.
  2. Dále nastavte typy dekódování čárového kódu pomocí metody SetBarCodeReadType().
  3. Poté získejte výsledky rozpoznání v objektu třídy BarCodeResult pomocí metody ReadBarCodes().
  4. Nakonec projděte výsledky a zobrazte typ a text čárového kódu.

Následující ukázka kódu ukazuje, jak číst čárové kódy více typů z obrázku pomocí C#.

// Tento příklad kódu ukazuje, jak číst čárový kód více typů dekódování z obrázku.
// Inicializujte čtečku čárových kódů
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png");
reader.SetBarCodeReadType(DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

// Čtení čárových kódů
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Číst čárové kódy více typů z obrázku v C#

Čtení čárových kódů více typů z obrázku v C#

Můžeme také zadat více typů dekódování v konstruktoru třídy BarCodeReader, jak je znázorněno níže:

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

Přečtěte si předdefinovanou sadu typů čárových kódů z obrázku v C#

Můžeme číst předdefinovanou sadu symbologií pro rozpoznávání definovanou ve třídě DecodeTypes. Můžeme nastavit kteroukoli z následujících předdefinovaných sad:

  • AllSupportedTypes – všechny podporované typy čárových kódů
  • Types1D - všechny podporované 1D symboliky
  • Types2D - všechny podporované 2D symboliky
  • PostalTypes - všechny podporované poštovní symboly, které používají hlavně poštovní služby
  • MostCommonTypes - sada nejpoužívanějších definovaných standardů čárových kódů

Předdefinovanou sadu můžeme určit podle následujících kroků:

  1. Za prvé, Nejprve načtěte obrázek pomocí třídy BarCodeReader.
  2. Dále nastavte typ dekódování čárového kódu v konstruktoru BarCodeReader nebo v metodě SetBarCodeReadType, jako je DecodeType.Types2D.
  3. Poté získejte výsledky rozpoznání v objektu třídy BarCodeResult pomocí metody ReadBarCodes().
  4. Nakonec projděte výsledky a zobrazte typ a text čárového kódu.

Následující ukázka kódu ukazuje, jak číst čárový kód pomocí předdefinované sady symbolů v C#.

// Tento příklad kódu ukazuje, jak číst čárový kód pomocí předem definované sady symbolů.
// Inicializujte čtečku čárových kódů
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.Types1D);

// Přečtěte si čárový kód a zobrazte výsledky
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Přečtěte si předdefinovanou sadu typů čárových kódů z obrázku v C#

Přečtěte si předdefinovanou sadu typů čárových kódů z obrázku v C#

Číst více čárových kódů z obrázku v C#

Můžeme také přečíst všechny dostupné čárové kódy z obrázku podle následujících kroků:

  1. Nejprve načtěte obrázek pomocí třídy BarCodeReader.
  2. Dále nastavte typ dekódování čárového kódu jako ALLSUPPORTEDTYPES.
  3. Poté získejte výsledky rozpoznání v objektu třídy BarCodeResult pomocí metody ReadBarCodes().
  4. Nakonec projděte výsledky a zobrazte typ a text čárového kódu.

Následující ukázka kódu ukazuje, jak číst více čárových kódů z obrázku pomocí C#.

// Tento příklad kódu ukazuje, jak číst více čárových kódů z obrázku.
// Inicializujte čtečku čárových kódů
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.AllSupportedTypes);

// Přečtěte si všechny typy čárových kódů dostupné na vstupním obrázku
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Přečtěte si více čárových kódů z obrázku.

Čtení více čárových kódů z obrázku.

Získejte souřadnice X a Y čárového kódu pomocí C#

Z obrázku můžeme přečíst souřadnice X a Y detekovaného čárového kódu podle následujících kroků:

  1. Nejprve načtěte obrázek pomocí třídy BarCodeReader.
  2. Dále získejte výsledky rozpoznání v objektu třídy BarCodeResult pomocí metody ReadBarCodes().
  3. Poté projděte výsledky a zkontrolujte, zda není oblast null.
  4. Poté získejte pole bodů ohraničující oblast čárového kódu pomocí bodů.
  5. Nakonec ukažte body X a Y čárového kódu.

Následující ukázka kódu ukazuje, jak získat body souřadnic X a Y čárového kódu z obrázku pomocí C#.

// Tento příklad kódu ukazuje, jak číst bod oblasti X & Y čárových kódů z obrázku.
// Inicializujte čtečku čárových kódů
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.AllSupportedTypes);

// Přečtěte si čárový kód
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    if (result.Region != null)
    {
        // Zobrazte souřadnice x a y všech detekovaných čárových kódů
        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);
    }
}
Získejte souřadnice X a Y čárového kódu

Získejte souřadnice X a Y čárového kódu z obrázku.

Číst čárový kód ze specifické oblasti obrázku v C#

Čárový kód z určité oblasti nebo oblasti obrázku můžeme přečíst podle následujících kroků:

  1. Nejprve načtěte data vyrovnávací paměti obrazového souboru pomocí metody Bitmap.
  2. Dále vytvořte instanci třídy BarCodeReader. Jako argumenty bere obrázek, oblast obdélníku a typ dekódování.
  3. Poté získejte výsledky rozpoznání v objektu třídy BarCodeResult pomocí metody ReadBarCodes().
  4. Nakonec projděte výsledky a zobrazte typ a text čárového kódu.

Následující ukázka kódu ukazuje, jak číst čárový kód z konkrétní oblasti obrázku pomocí C#.

// Tento příklad kódu ukazuje, jak číst čárový kód z konkrétní oblasti obrázku.
// Načíst obrázek
Bitmap img = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.jpeg");

// Vytvořte instanci třídy BarCodeReader
// a určete oblast, kde se má čárový kód hledat
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 400, 200));

// Přečtěte si všechny čárové kódy v určené oblasti
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Čtení čárového kódu ze specifické oblasti obrázku.

Čtení čárových kódů z konkrétní oblasti obrázku v C#.

Číst čárový kód z více oblastí obrázku v C#

Čárový kód můžeme také přečíst z více oblastí obrázku podle následujících kroků:

  1. Nejprve načtěte obrázek pomocí třídy Bitmap.
  2. Dále definujte obdélníky pomocí třídy Rectangle.
  3. Poté vytvořte instanci třídy BarCodeReader.
  4. Mezitím zavolejte SetBarCodeImage() s objektem obrázku a obdélníky jako argumenty.
  5. Volitelně nastavte typy čtení čárových kódů pomocí metody SetBarCodeReadType().
  6. Poté získejte výsledky rozpoznání v objektu třídy BarCodeResult pomocí metody ReadBarCodes().
  7. Nakonec projděte výsledky a zobrazte typ a text čárového kódu.

Následující ukázka kódu ukazuje, jak číst čárový kód z více oblastí obrázku pomocí C#.

// Tento příklad kódu ukazuje, jak číst čárový kód z konkrétní oblasti obrázku.
// Načíst obrázek v bitmapě
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.png");

// Obdélník 2D čárového kódu ve zdrojovém obrázku
Rectangle rect2D = new Rectangle(0, 0, 400, 200);

// Obdélník čárového kódu Code128 ve zdrojovém obrázku
Rectangle rectCode128 = new Rectangle(450, 100, 600, 180);

// Inicializujte čtečku čárových kódů
BarCodeReader reader = new BarCodeReader();
reader.SetBarCodeImage(bmp, new Rectangle[] { rect2D, rectCode128 });
reader.SetBarCodeReadType(DecodeType.AllSupportedTypes);

// Přečtěte si všechny čárové kódy v určené oblasti
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Čtení čárového kódu z více oblastí obrázku.

Čtení čárových kódů z více oblastí obrázku v C#.

Získejte bezplatnou licenci

Můžete získat bezplatnou dočasnou licenci a vyzkoušet knihovnu bez omezení hodnocení.

Závěr

V tomto článku jsme se naučili, jak:

  • Načíst soubor obrázku s čárovým kódem;
  • Čtení obrázků jako bitmapy nebo pomocí datového proudu souborů;
  • rozpoznat čárové kódy různých typů z obrázku;
  • čtení souřadnic čárového kódu;
  • detekovat a číst více čárových kódů z jednoho obrázku;
  • detekovat a číst čárové kódy z určité oblasti obrazu.

Kromě čtení čárového kódu z obrázku v C# se můžete dozvědět více o Aspose.BarCode for .NET API pomocí dokumentace. V případě jakýchkoliv nejasností nás neváhejte kontaktovat na našem bezplatném fóru podpory.

Viz také