Odczytywanie kodu kreskowego z obrazu przy użyciu języka Java

Kody kreskowe odgrywają istotną rolę w dokładnym śledzeniu zapasów i dostawie produktów od produkcji do punktu sprzedaży. W niektórych przypadkach może być konieczne programowe odczytywanie kodów kreskowych z obrazów. Z łatwością wykrywamy, rozpoznajemy i odczytujemy różnego rodzaju kody kreskowe i kody QR w aplikacjach Java. Pomaga rozwijać czytniki kodów kreskowych lub aplikacje do skanowania. W tym artykule dowiemy się, jak odczytać kod kreskowy z obrazu za pomocą Javy.

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

Co to jest kod kreskowy

Kod kreskowy to odczytywalny maszynowo kod reprezentujący zakodowane dane w postaci liczb i wzoru równoległych linii. Obraz kodu kreskowego przedstawia serię równoległych czarno-białych pasków różniących się szerokością, odstępami i rozmiarami. Czytniki lub skanery kodów kreskowych skanują obrazy kodów kreskowych i dekodują informacje.

Java API do odczytu kodu kreskowego z obrazu

Aby odczytać kody kreskowe z obrazów w aplikacjach Java, użyjemy Aspose.BarCode for Java. Jest to bogaty w funkcje interfejs API, który umożliwia generowanie, skanowanie i odczytywanie szerokiej gamy symboli kodów kreskowych. Klasa BarCodeReader API umożliwia odczyt kodów kreskowych. Metoda readBarCodes() tej klasy zwraca tablicę rozpoznanych kodów kreskowych. API umożliwia odczyt kodów kreskowych określonego typu DecodeType. Klasa BarCodeResult interfejsu API przechowuje rozpoznane dane kodu kreskowego, takie jak typ kodu kreskowego, tekst kodu, region i inne parametry.

Pobierz plik JAR interfejsu API lub dodaj następującą konfigurację pom.xml w aplikacji Java opartej na Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-barcode</artifactId>
    <version>22.5</version>
</dependency>

Odczytaj kod kreskowy z obrazu w Javie

Kody kreskowe możemy odczytać z obrazu, wykonując poniższe czynności:

  • Najpierw załaduj obraz przy użyciu klasy BarCodeReader.
  • Uzyskaj wyniki rozpoznawania w obiekcie klasy BarCodeResult za pomocą metody readBarCodes().
  • 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 języka Java.

// Ten przykład kodu pokazuje, jak odczytać kod kreskowy z obrazu.
// Ścieżka do katalogu obrazu
String dataDir = "C:\\Files\\BarCode\\";

// Zainicjuj czytnik kodów kreskowych
BarCodeReader reader = new BarCodeReader(dataDir + "CodeText.jpg");

// Odczytaj kod kreskowy i pokaż wyniki
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
}
Odczytywanie kodu kreskowego z obrazu.

Odczytaj kod kreskowy z obrazu w Javie.

Rozpoznaj kod kreskowy określonego typu w Javie

Możemy odczytać kod kreskowy określonego typu z obrazu, wykonując czynności podane poniżej:

  • Najpierw odczytujemy dane z bufora pliku obrazu za pomocą metody ImageIO.read().
  • Następnie utwórz instancję klasy BarCodeReader z buforowanym obrazem i typem dekodowania.
  • Następnie ustaw typ dekodowania kodu kreskowego, aby odczytać kod kreskowy określonego typu, na przykład CODE39STANDARD.
  • Następnie uzyskaj wyniki rozpoznawania w obiekcie klasy BarCodeResult za pomocą metody readBarCodes().
  • 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 Java.

// Ten przykład kodu demonstruje, jak odczytać kod kreskowy określonego typu dekodowania z obrazu.
// Ścieżka do katalogu obrazu
String dataDir = "C:\\Files\\BarCode\\";

// Uzyskaj buforowany obraz
BufferedImage img = ImageIO.read(new File(dataDir + "CODE_39_STANDARD.jpg"));

// Zainicjuj czytnik kodów kreskowych
BarCodeReader reader = new BarCodeReader(img, DecodeType.CODE_39_STANDARD);

// Odczytywanie kodu kreskowego typu Code39Extended
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
}
Rozpoznaj kod kreskowy określonego typu.

Rozpoznaj kod kreskowy określonego typu w Javie.

Czytaj wiele kodów kreskowych z obrazu w Javie

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

  • Najpierw załaduj obraz przy użyciu klasy BarCodeReader.
  • Następnie ustaw typ dekodowania kodu kreskowego na ALLSUPPORTEDTYPES.
  • Następnie uzyskaj wyniki rozpoznawania w obiekcie klasy BarCodeResult za pomocą metody readBarCodes().
  • 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 Java.

// Ten przykład kodu pokazuje, jak odczytać wiele kodów kreskowych z obrazu.
// Ścieżka do katalogu obrazu
String dataDir = "C:\\Files\\BarCode\\";

// Zainicjuj czytnik kodów kreskowych
BarCodeReader reader = new BarCodeReader(dataDir + "MultipleBarcodes.png", DecodeType.ALL_SUPPORTED_TYPES);

// Odczytywanie wszystkich rodzajów kodów kreskowych dostępnych na obrazie wejściowym
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
  System.out.println("-------------------------");
}
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ą języka Java

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

  • Najpierw załaduj obraz przy użyciu klasy BarCodeReader.
  • Następnie uzyskaj wyniki rozpoznawania w obiekcie klasy BarCodeResult za pomocą metody readBarCodes().
  • Następnie przejrzyj wyniki i sprawdź, czy getRegion() nie ma wartości null.
  • Następnie pobierz tablicę Points ograniczającą region kodu kreskowego za pomocą metody getPoints().
  • Na koniec pokaż punkty X i Y kodu kreskowego.

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

// Ten przykład kodu demonstruje, jak odczytać punkt regionu X i Y kodów kreskowych z obrazu.
// Ścieżka do katalogu obrazu
String dataDir = "C:\\Files\\BarCode\\";

// Zainicjuj czytnik kodów kreskowych
BarCodeReader reader = new BarCodeReader(dataDir + "Code39Std.png", DecodeType.ALL_SUPPORTED_TYPES);

// Przeczytaj kod kreskowy
for (BarCodeResult result : reader.readBarCodes()) {
  if (result.getRegion() != null) {
    // Wyświetl współrzędne x i y wszystkich wykrytych kodów kreskowych
    Point[] point = result.getRegion().getPoints();
    System.out.println("Top left coordinates: X = " + point[0].x + ", Y = " + point[0].y);
    System.out.println("Bottom left coordinates: X = " + point[1].x + ", Y = " + point[1].y);
    System.out.println("Bottom right coordinates: X = " + point[2].x + ", Y = " + point[2].y);
    System.out.println("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 Javie

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

  • Najpierw odczytujemy dane z bufora pliku obrazu za pomocą metody ImageIO.read().
  • Następnie utwórz instancję klasy BarCodeReader. Pobiera buforowany obraz, obszar prostokąta i typ dekodowania jako argumenty.
  • Następnie uzyskaj wyniki rozpoznawania w obiekcie klasy BarCodeResult za pomocą metody readBarCodes().
  • Na koniec przejrzyj wyniki i pokaż typ i tekst kodu kreskowego.

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

// Ten przykład kodu pokazuje, jak odczytać kod kreskowy z określonego regionu obrazu.
// Ścieżka do katalogu obrazu
String dataDir = "C:\\Files\\BarCode\\";

// Uzyskaj buforowany obraz
java.awt.image.BufferedImage img = javax.imageio.ImageIO.read(new java.io.File(dataDir + "specificRegion.png"));

// Utwórz instancję klasy BarCodeReader
// i określ obszar wyszukiwania kodu kreskowego
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 700, 100), DecodeType.ALL_SUPPORTED_TYPES);

// Przeczytaj wszystkie kody kreskowe w przewidzianym obszarze
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
}
Odczytaj kod kreskowy z określonego regionu obrazu.

Czytaj kody kreskowe z określonego regionu obrazu w Javie.

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:

  • Programowo ładuj obraz kodu kreskowego;
  • rozpoznawać kody kreskowe różnych typów z obrazu;
  • odczytać współrzędne kodu kreskowego w Javie;
  • wykrywać i odczytywać wiele kodów kreskowych z jednego obrazu;
  • wykrywać i odczytywać kody kreskowe z określonego obszaru obrazu.

Poza tym możesz dowiedzieć się więcej o Aspose.BarCode for Java API korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.

Zobacz też