Odczytaj kod kreskowy z obrazu w C#

Szukasz sposobu na programowe odczytywanie kodów kreskowych lub kodów QR z obrazów? Jesteś programistą i potrzebujesz stworzyć własną aplikację czytnika kodów kreskowych? Trafiłeś we właściwe miejsce. Kody kreskowe mają kluczowe znaczenie dla dokładnego śledzenia zapasów i dostaw produktów z produkcji do punktu sprzedaży. Z łatwością wykrywamy, rozpoznajemy i odczytujemy różne rodzaje kodów kreskowych i kodów QR w aplikacjach .NET. W tym artykule pokażemy, jak odczytać kod kreskowy z obrazu w języku C#, wykonując zaledwie kilka prostych kroków. Ten artykuł może służyć jako przewodnik krok po kroku dotyczący tworzenia aplikacji czytnika kodów kreskowych lub skanera.

Najpierw przyjrzymy się interfejsowi API czytnika kodów kreskowych C#, aby odczytać kody kreskowe dostępne w obrazie wejściowym. Następnie omówimy kroki wykrywania, rozpoznawania i wyodrębniania danych kodu kreskowego z obrazu. Znajdziesz szczegółowe kroki i fragmenty kodu. Na koniec udostępnimy przydatne łącza do dalszych ulepszeń. Więc zacznijmy!

W tym artykule zostaną omówione następujące tematy:

  1. C# API do odczytu kodu kreskowego z obrazu
  2. Kroki, aby odczytać kod kreskowy z obrazu
  3. Odczyt kodu kreskowego z mapy bitowej
  4. Odczytaj kod kreskowy z obrazu za pomocą strumienia
  5. Jak czytać kod kreskowy określonego typu
  6. Odczyt kodów kreskowych wielu typów z obrazu
  7. Wykrywanie i odczytywanie predefiniowanych zestawów symboli
  8. Wykrywanie i odczytywanie wielu kodów kreskowych z obrazu
  9. Pobierz współrzędne X i Y kodu kreskowego
  10. Odczytaj kod kreskowy z określonego obszaru obrazu
  11. Odczytaj kod kreskowy z wielu regionów obrazu

C# API do odczytu kodu kreskowego z obrazu

Do odczytania kodu kreskowego z obrazu użyjemy API Aspose.BarCode for .NET. API umożliwia generowanie, skanowanie i odczytywanie szerokiego zakresu symbologi kodów kreskowych. Umożliwia renderowanie obrazów kodów kreskowych w formatach JPEG, TIFF, PNG, BMP i GIF.

API udostępnia klasę BarCodeReader, która umożliwia rozpoznawanie ponad 60 różnych typów kodów kreskowych z danych obrazów. Pierwszym krokiem w wykrywaniu kodów kreskowych jest określenie źródła obrazu z kodami kreskowymi. Może to być plik, obiekt mapy bitowej lub strumień. Następnie konieczne jest określenie docelowych symboli w parametrze DecodeType. Możemy przejrzeć wszystkie różne typy obsługiwanych symboli, określając DecodeType.AllSupportedTypes. Metoda ReadBarCodes() tej klasy zwraca tablicę rozpoznanych kodów kreskowych. Klasa BarCodeResult interfejsu API przechowuje rozpoznane dane kodu kreskowego, takie jak typ kodu kreskowego, tekst kodu, region i inne parametry.

API pozwala również określić regiony obrazu, które czytnik kodów kreskowych powinien odczytać. Można to osiągnąć za pomocą obiektu .NET Rectangle i pozwala uniknąć konieczności znajdowania kodów kreskowych w obszarach obrazu, które domyślnie nie zawierają kodów kreskowych.

Proszę pobrać bibliotekę DLL interfejsu API lub zainstalować ją za pomocą NuGet.

PM> Install-Package Aspose.BarCode 

Czytaj kod kreskowy z obrazu za pomocą C#

Możemy łatwo odczytać kod kreskowy z obrazu, wykonując poniższe czynności:

  1. Najpierw załaduj obraz przy użyciu klasy BarCodeReader.
  2. Wywołaj metodę readBarCodes() i uzyskaj wyniki rozpoznawania w obiekcie klasy BarCodeResult.
  3. Na koniec przejrzyj wyniki i pokaż typ i tekst kodu kreskowego.

Poniższy przykład kodu pokazuje, jak odczytać kod kreskowy z obrazu w języku C#.

// Ten przykład kodu pokazuje, jak odczytać kod kreskowy z pliku obrazu.
// Zainicjuj czytnik kodów kreskowych
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Sample.png");

// Odczytaj kod kreskowy i pokaż wyniki
foreach(BarCodeResult result in reader.ReadBarCodes()) 
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Odczytaj kod kreskowy z obrazu.

Odczytaj kod kreskowy z obrazu w języku C#.

Czytaj kod kreskowy z bitmapy w C#

Możemy łatwo odczytać kod kreskowy z obrazu, wykonując poniższe czynności:

  1. Najpierw załaduj obraz przy użyciu klasy Bitmap.
  2. Następnie utwórz instancję klasy BarCodeReader z obiektem Bitmap.
  3. Wywołaj metodę ReadBarCodes() i uzyskaj wyniki rozpoznawania w obiekcie klasy BarCodeResult.
  4. Na koniec przejrzyj wyniki i pokaż typ i tekst kodu kreskowego.

Poniższy przykład kodu pokazuje, jak odczytać kod kreskowy z mapy bitowej w języku C#.

// Ten przykład kodu demonstruje, jak odczytać kod kreskowy z mapy bitowej.
// Załaduj obraz w Bitmapie
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\Code128.jpg");

// Zainicjuj czytnik kodów kreskowych
BarCodeReader reader = new BarCodeReader(bmp);

// Przeczytaj wszystkie kody kreskowe w przewidzianym obszarze
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Odczytywanie kodu kreskowego z obrazu bitmapowego w języku C#.

Odczytaj kod kreskowy z mapy bitowej w języku C#.

Czytaj kod kreskowy z obrazu za pomocą strumienia w C#

Możemy również załadować obraz kodu kreskowego za pomocą strumienia plików i odczytać kod kreskowy, wykonując czynności podane poniżej:

  1. Najpierw załaduj obraz przy użyciu klasy FileStream.
  2. Następnie utwórz instancję klasy BarCodeReader z obiektem stream.
  3. Wywołaj metodę ReadBarCodes() i uzyskaj wyniki rozpoznawania w obiekcie klasy BarCodeResult.
  4. Na koniec przejrzyj wyniki i pokaż typ i tekst kodu kreskowego.

Poniższy przykładowy kod pokazuje, jak odczytać kod kreskowy z obrazu przy użyciu strumienia w języku C#.

// Ten przykład kodu demonstruje, jak odczytać kod kreskowy z obrazu przy użyciu strumienia plików.
// Załaduj obraz
Stream stream = new FileStream("C:\\Files\\BarCode\\MultipleBarcodes.jpeg", FileMode.Open, FileAccess.Read);

// Zainicjuj czytnik kodów kreskowych
BarCodeReader reader = new BarCodeReader(stream);

// Przeczytaj wszystkie kody kreskowe w przewidzianym obszarze
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}

Odczytaj kod kreskowy określonego typu z obrazu w C#

Zaleca się wybranie docelowych symboli kodów kreskowych, które będą brane pod uwagę do rozpoznania, aby zminimalizować czas potrzebny do zakończenia rozpoznawania i uniknąć prób rozpoznania nieaktualnych kodów kreskowych.

Możemy określić docelowy typ kodu kreskowego i odczytać kod kreskowy z obrazu, wykonując poniższe czynności:

  1. Najpierw załaduj obraz przy użyciu klasy BarCodeReader.
  2. Następnie ustaw typ dekodowania kodu kreskowego, na przykład Code39Standard.
  3. Następnie uzyskaj wyniki rozpoznawania w obiekcie klasy BarCodeResult za pomocą metody ReadBarCodes().
  4. Na koniec przejrzyj wyniki i pokaż typ i tekst kodu kreskowego.

Poniższy przykładowy kod pokazuje, jak odczytać kod kreskowy określonego typu z obrazu przy użyciu języka C#.

// Ten przykład kodu demonstruje, jak odczytać kod kreskowy określonego typu dekodowania z obrazu.
// Zainicjuj czytnik kodów kreskowych
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.Code39Standard);

// Odczytywanie kodu kreskowego typu Code39Extended
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Rozpoznaj kod kreskowy określonego typu z obrazu

Rozpoznaj kod kreskowy określonego typu z obrazu w C#.

Odczytaj kod kreskowy wielu typów z obrazu w C#

Możemy również określić wiele typów kodów kreskowych, wykonując poniższe czynności:

  1. Najpierw załaduj obraz przy użyciu klasy BarCodeReader.
  2. Następnie ustaw typy dekodowania kodów kreskowych za pomocą metody SetBarCodeReadType().
  3. Następnie uzyskaj wyniki rozpoznawania w obiekcie klasy BarCodeResult za pomocą metody ReadBarCodes().
  4. Na koniec przejrzyj wyniki i pokaż typ i tekst kodu kreskowego.

Poniższy przykładowy kod pokazuje, jak odczytywać kody kreskowe wielu typów z obrazu przy użyciu języka C#.

// Ten przykład kodu demonstruje, jak odczytać kod kreskowy wielu typów dekodowania z obrazu.
// Zainicjuj czytnik kodów kreskowych
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png");
reader.SetBarCodeReadType(DecodeType.DataMatrix, DecodeType.QR, DecodeType.Code39Extended);

// Czytaj kody kreskowe
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Czytaj kody kreskowe wielu typów z obrazu w C#

Czytaj kody kreskowe wielu typów z obrazu w C#

Możemy również określić wiele typów dekodowania w konstruktorze klasy BarCodeReader, jak pokazano poniżej:

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

Odczyt predefiniowanego zestawu typów kodów kreskowych z obrazu w C#

Do rozpoznawania możemy odczytać predefiniowany zestaw symboli zdefiniowanych w klasie DecodeTypes. Możemy ustawić dowolny z następujących predefiniowanych zestawów:

  • AllSupportedTypes — wszystkie obsługiwane typy kodów kreskowych
  • Types1D — wszystkie obsługiwane symboliki 1D
  • Types2D — wszystkie obsługiwane symboliki 2D
  • PostalTypes — wszystkie obsługiwane symboliki pocztowe, które są używane głównie przez usługi pocztowe
  • MostCommonTypes - zdefiniowany zestaw najczęściej używanych standardów kodów kreskowych

Możemy określić predefiniowany zestaw, wykonując poniższe czynności:

  1. Po pierwsze, po pierwsze, załaduj obraz za pomocą klasy BarCodeReader.
  2. Następnie ustaw typ dekodowania kodu kreskowego w konstruktorze BarCodeReader lub w metodzie SetBarCodeReadType, na przykład DecodeType.Types2D.
  3. Następnie uzyskaj wyniki rozpoznawania w obiekcie klasy BarCodeResult za pomocą metody ReadBarCodes().
  4. Na koniec przejrzyj wyniki i pokaż typ i tekst kodu kreskowego.

Poniższy przykładowy kod pokazuje, jak odczytać kod kreskowy przy użyciu wstępnie zdefiniowanego zestawu symboli w języku C#.

// Ten przykład kodu pokazuje, jak odczytać kod kreskowy przy użyciu wstępnie zdefiniowanego zestawu symboli.
// Zainicjuj czytnik kodów kreskowych
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.Types1D);

// Odczytaj kod kreskowy i pokaż wyniki
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Odczyt predefiniowanego zestawu typów kodów kreskowych z obrazu w C#

Odczyt predefiniowanego zestawu typów kodów kreskowych z obrazu w C#

Czytaj wiele kodów kreskowych z obrazu w C#

Możemy również odczytać wszystkie dostępne kody kreskowe z obrazu, wykonując poniższe czynności:

  1. Najpierw załaduj obraz przy użyciu klasy BarCodeReader.
  2. Następnie ustaw typ dekodowania kodu kreskowego na ALLSUPPORTEDTYPES.
  3. Następnie uzyskaj wyniki rozpoznawania w obiekcie klasy BarCodeResult za pomocą metody ReadBarCodes().
  4. Na koniec przejrzyj wyniki i pokaż typ i tekst kodu kreskowego.

Poniższy przykładowy kod pokazuje, jak odczytać wiele kodów kreskowych z obrazu przy użyciu języka C#.

// Ten przykład kodu pokazuje, jak odczytać wiele kodów kreskowych z obrazu.
// Zainicjuj czytnik kodów kreskowych
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\MultipleBarcodes.png", DecodeType.AllSupportedTypes);

// Odczytywanie wszystkich rodzajów kodów kreskowych dostępnych na obrazie wejściowym
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Czytaj wiele kodów kreskowych z obrazu.

Odczytywanie wielu kodów kreskowych z obrazu.

Uzyskaj współrzędne X i Y kodu kreskowego za pomocą C#

Możemy odczytać współrzędne X i Y wykrytego kodu kreskowego z obrazu, wykonując czynności podane poniżej:

  1. Najpierw załaduj obraz przy użyciu klasy BarCodeReader.
  2. Następnie pobierz wyniki rozpoznawania w obiekcie klasy BarCodeResult za pomocą metody ReadBarCodes().
  3. Następnie przejrzyj wyniki i sprawdź, czy Region nie jest pusty.
  4. Następnie pobierz tablicę Points ograniczającą region kodu kreskowego za pomocą metody Points.
  5. Na koniec pokaż punkty X i Y kodu kreskowego.

Poniższy przykład kodu pokazuje, jak uzyskać punkty współrzędnych X i Y kodu kreskowego z obrazu przy użyciu języka C#.

// Ten przykład kodu demonstruje, jak odczytać punkt regionu X i Y kodów kreskowych z obrazu.
// Zainicjuj czytnik kodów kreskowych
BarCodeReader reader = new BarCodeReader("C:\\Files\\BarCode\\Code39Standard.jpg", DecodeType.AllSupportedTypes);

// Przeczytaj kod kreskowy
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    if (result.Region != null)
    {
        // Wyświetl współrzędne x i y wszystkich wykrytych kodów kreskowych
        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);
    }
}
Uzyskaj współrzędne X i Y kodu kreskowego

Uzyskaj współrzędne X i Y kodu kreskowego z obrazu.

Odczytaj kod kreskowy z określonego regionu obrazu w C#

Możemy odczytać kod kreskowy z określonego regionu lub obszaru obrazu, wykonując poniższe czynności:

  1. Najpierw odczytujemy dane z bufora pliku obrazu przy użyciu metody Bitmap.
  2. Następnie utwórz instancję klasy BarCodeReader. Pobiera obraz, obszar prostokąta i typ dekodowania jako argumenty.
  3. Następnie uzyskaj wyniki rozpoznawania w obiekcie klasy BarCodeResult za pomocą metody ReadBarCodes().
  4. Na koniec przejrzyj wyniki i pokaż typ i tekst kodu kreskowego.

Poniższy przykład kodu pokazuje, jak odczytać kod kreskowy z określonego regionu obrazu przy użyciu języka C#.

// Ten przykład kodu pokazuje, jak odczytać kod kreskowy z określonego regionu obrazu.
// Załaduj obraz
Bitmap img = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.jpeg");

// Utwórz instancję klasy BarCodeReader
// i określ obszar wyszukiwania kodu kreskowego
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 400, 200));

// Przeczytaj wszystkie kody kreskowe w przewidzianym obszarze
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
}
Odczytaj kod kreskowy z określonego regionu obrazu.

Odczytywanie kodów kreskowych z określonego regionu obrazu w języku C#.

Czytaj kod kreskowy z wielu regionów obrazu w C#

Możemy również odczytać kod kreskowy z wielu obszarów obrazu, wykonując czynności podane poniżej:

  1. Najpierw załaduj obraz przy użyciu klasy Bitmap.
  2. Następnie zdefiniuj prostokąty za pomocą klasy Rectangle.
  3. Następnie utwórz instancję klasy BarCodeReader.
  4. W międzyczasie wywołaj metodę SetBarCodeImage() z obiektem obrazu i prostokątami jako argumentami.
  5. Opcjonalnie ustaw typy odczytu kodów kreskowych za pomocą metody SetBarCodeReadType().
  6. Następnie uzyskaj wyniki rozpoznawania w obiekcie klasy BarCodeResult za pomocą metody ReadBarCodes().
  7. Na koniec przejrzyj wyniki i pokaż typ i tekst kodu kreskowego.

Poniższy przykład kodu pokazuje, jak odczytać kod kreskowy z wielu regionów obrazu przy użyciu języka C#.

// Ten przykład kodu pokazuje, jak odczytać kod kreskowy z określonego regionu obrazu.
// Załaduj obraz w Bitmapie
Bitmap bmp = new Bitmap("C:\\Files\\BarCode\\MultipleBarcodes.png");

// Prostokąt kodu kreskowego 2D w obrazie źródłowym
Rectangle rect2D = new Rectangle(0, 0, 400, 200);

// Prostokąt kodu kreskowego Code128 na obrazie źródłowym
Rectangle rectCode128 = new Rectangle(450, 100, 600, 180);

// Zainicjuj czytnik kodów kreskowych
BarCodeReader reader = new BarCodeReader();
reader.SetBarCodeImage(bmp, new Rectangle[] { rect2D, rectCode128 });
reader.SetBarCodeReadType(DecodeType.AllSupportedTypes);

// Przeczytaj wszystkie kody kreskowe w przewidzianym obszarze
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.Out.WriteLine("CodeText: " + result.CodeText);
    Console.Out.WriteLine("Symbology type: " + result.CodeType);
    Console.Out.WriteLine("-------------------------");
}
Odczytywanie kodu kreskowego z wielu regionów obrazu.

Czytaj kody kreskowe z wielu regionów obrazu w języku C#.

Uzyskaj bezpłatną licencję

Możesz uzyskać bezpłatną tymczasową licencję, aby wypróbować bibliotekę bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule dowiedzieliśmy się, jak:

  • Załaduj plik obrazu kodu kreskowego;
  • Czytaj obrazy jako mapy bitowe lub używając strumienia plików;
  • rozpoznawać kody kreskowe różnych typów z obrazu;
  • odczytać współrzędne kodu kreskowego;
  • wykrywać i odczytywać wiele kodów kreskowych z jednego obrazu;
  • wykrywać i odczytywać kody kreskowe z określonego obszaru obrazu.

Poza odczytywaniem kodu kreskowego z obrazu w C#, możesz dowiedzieć się więcej o Aspose.BarCode for .NET API korzystając z documentation. W przypadku jakichkolwiek niejasności prosimy o kontakt na naszym darmowym forum pomocy technicznej.

Zobacz też