Läs streckkod från bild med Java

Streckkoder spelar en viktig roll för korrekt spårning av lager och leverans av produkter från tillverkning till försäljningsställe. I vissa fall kan vi behöva läsa streckkoder från bilder programmatiskt. Vi kan enkelt upptäcka, känna igen och läsa olika typer av streckkoder och QR-koder i Java-applikationer. Det hjälper till att utveckla streckkodsläsare eller skannerapplikationer. I den här artikeln kommer vi att lära oss hur man läser en streckkod från en bild med hjälp av Java.

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

Vad är streckkod

En streckkod är en maskinläsbar kod som representerar kodad data i form av siffror och ett mönster av parallella linjer. Streckkodsbilden visar en serie parallella svarta och vita streck med olika bredd, avstånd och storlekar. Streckkodsläsare eller skannrar skannar streckkodsbilderna och avkodar informationen.

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

För att läsa streckkoderna från bilder i Java-applikationerna kommer vi att använda Aspose.BarCode for Java. Det är ett funktionsrikt API som låter dig generera, skanna och läsa ett brett utbud av streckkodssymbologier. Klassen BarCodeReader i API:t tillåter läsning av streckkoderna. Metoden readBarCodes() för den här klassen returnerar en array av igenkända streckkoder. API:et tillåter läsning av streckkoder av den angivna DecodeType. Klassen BarCodeResult i API:et lagrar de igenkända streckkodsdata som streckkodstyp, kodtext, region och andra parametrar.

Vänligen antingen ladda ner JAR för API:t eller lägg till följande pom.xml-konfiguration i en Maven-baserad Java-applikation.

<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>

Läs streckkod från en bild i Java

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

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

Följande kodexempel visar hur man läser en streckkod från en bild med hjälp av Java.

// Detta kodexempel visar hur man läser streckkoder från en bild.
// Sökvägen till bildkatalogen
String dataDir = "C:\\Files\\BarCode\\";

// Initiera streckkodsläsaren
BarCodeReader reader = new BarCodeReader(dataDir + "CodeText.jpg");

// Läs streckkoden och visa resultat
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
}
Läs streckkod från en bild.

Läs streckkod från en bild i Java.

Känn igen streckkoder av specifik typ i Java

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

  • Läs först buffertdata för en bildfil med metoden ImageIO.read().
  • Skapa sedan en instans av klassen BarCodeReader med en buffrad bild och avkodningstyp.
  • Ställ sedan in en streckkodsavkodningstyp för att läsa streckkoden av en specifik typ, till exempel CODE39STANDARD.
  • Efter det får du igenkänningsresultat i BarCodeResult-klassobjektet med metoden readBarCodes().
  • 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 hjälp av Java.

// Detta kodexempel visar hur man läser streckkoder av en specifik avkodningstyp från en bild.
// Sökvägen till bildkatalogen
String dataDir = "C:\\Files\\BarCode\\";

// Få buffrad bild
BufferedImage img = ImageIO.read(new File(dataDir + "CODE_39_STANDARD.jpg"));

// Initiera streckkodsläsaren
BarCodeReader reader = new BarCodeReader(img, DecodeType.CODE_39_STANDARD);

// Läs streckkod av typen Code39Extended
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
}
Känn igen streckkoder av specifik typ.

Känn igen streckkoden av en specifik typ i Java.

Läs flera streckkoder från bild i Java

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

  • Först laddar du en bild med klassen BarCodeReader.
  • Ställ sedan in en streckkodsavkodningstyp som ALLSUPPORTEDTYPES.
  • Efter det får du igenkänningsresultat i BarCodeResult-klassobjektet med metoden readBarCodes().
  • 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 Java.

// Detta kodexempel visar hur man läser flera streckkoder från en bild.
// Sökvägen till bildkatalogen
String dataDir = "C:\\Files\\BarCode\\";

// Initiera streckkodsläsaren
BarCodeReader reader = new BarCodeReader(dataDir + "MultipleBarcodes.png", DecodeType.ALL_SUPPORTED_TYPES);

// Läs alla typer av streckkoder som finns på inmatningsbilden
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
  System.out.println("-------------------------");
}
Läs flera streckkoder från bild.

Läs flera streckkoder från en bild.

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

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

  • Först laddar du en bild med klassen BarCodeReader.
  • Hämta sedan igenkänningsresultat i BarCodeResult-klassobjektet med metoden readBarCodes().
  • Gå sedan igenom resultaten och kontrollera om getRegion() inte är null.
  • Efter det får du Points-arrayen som avgränsar streckkodsområdet med hjälp av getPoints().
  • 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 Java.

// Detta kodexempel visar hur man läser X- och Y-regionpunkten för streckkoder från en bild.
// Sökvägen till bildkatalogen
String dataDir = "C:\\Files\\BarCode\\";

// Initiera streckkodsläsaren
BarCodeReader reader = new BarCodeReader(dataDir + "Code39Std.png", DecodeType.ALL_SUPPORTED_TYPES);

// Läs streckkoden
for (BarCodeResult result : reader.readBarCodes()) {
  if (result.getRegion() != null) {
    // Visa x- och y-koordinater för alla upptäckta streckkoder
    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);
  }
}
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 Java

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

  • Läs först buffertdata för en bildfil med metoden ImageIO.read().
  • Skapa sedan en instans av klassen BarCodeReader. Den tar en buffrad bild, ett rektangelområde och en avkodningstyp som argument.
  • Efter det får du igenkänningsresultat i BarCodeResult-klassobjektet med metoden readBarCodes().
  • 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 hjälp av Java.

// Detta kodexempel visar hur man läser streckkoder från en viss del av en bild.
// Sökvägen till bildkatalogen
String dataDir = "C:\\Files\\BarCode\\";

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

// 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, 700, 100), DecodeType.ALL_SUPPORTED_TYPES);

// Läs alla streckkoder i det angivna området
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
}
Läs streckkoden från en viss bildregion.

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

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 streckkodsbild programmatiskt;
  • känna igen streckkoder av olika typer från en bild;
  • läsa streckkodskoordinater i Java;
  • 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.

Dessutom kan du lära dig mer om Aspose.BarCode för Java API med hjälp av dokumentationen. I händelse av oklarheter, var god kontakta oss på forumet.

Se även