อ่านบาร์โค้ดจากรูปภาพโดยใช้ Java

บาร์โค้ดมีบทบาทสำคัญในการติดตามสินค้าคงคลังและการส่งมอบผลิตภัณฑ์อย่างแม่นยำตั้งแต่การผลิตจนถึงจุดขาย ในบางกรณี เราอาจต้องอ่านบาร์โค้ดจากรูปภาพโดยทางโปรแกรม เราสามารถตรวจจับ จดจำ และอ่านบาร์โค้ดและคิวอาร์โค้ดประเภทต่างๆ ได้อย่างง่ายดายในแอปพลิเคชัน Java ช่วยในการพัฒนาแอพพลิเคชั่นเครื่องอ่านบาร์โค้ดหรือสแกนเนอร์ ในบทความนี้ เราจะมาเรียนรู้วิธีการอ่านบาร์โค้ดจากรูปภาพโดยใช้ Java

หัวข้อต่อไปนี้จะครอบคลุมในบทความนี้:

บาร์โค้ดคืออะไร

บาร์โค้ดคือรหัสที่เครื่องอ่านได้ซึ่งแสดงข้อมูลที่เข้ารหัสในรูปแบบของตัวเลขและรูปแบบของเส้นขนาน ภาพบาร์โค้ดแสดงชุดของแถบขาวดำคู่ขนานที่มีความกว้าง ระยะห่าง และขนาดที่แตกต่างกัน เครื่องอ่านบาร์โค้ดหรือสแกนเนอร์สแกนภาพบาร์โค้ดและถอดรหัสข้อมูล

Java API เพื่ออ่านบาร์โค้ดจากรูปภาพ

ในการอ่านบาร์โค้ดจากรูปภาพภายในแอปพลิเคชัน Java เราจะใช้ Aspose.BarCode for Java เป็น API ที่มีคุณลักษณะหลากหลายซึ่งช่วยให้คุณสร้าง สแกน และอ่าน สัญลักษณ์บาร์โค้ด ได้หลากหลาย คลาส BarCodeReader ของ API ช่วยให้อ่านบาร์โค้ดได้ เมธอด readBarCodes() ของคลาสนี้ส่งคืนอาร์เรย์ของ บาร์โค้ด ที่รู้จัก API อนุญาตให้อ่านบาร์โค้ดของ DecodeType ที่ระบุ คลาส BarCodeResult ของ API เก็บข้อมูลบาร์โค้ดที่รู้จัก เช่น ประเภทบาร์โค้ด ข้อความรหัส ภูมิภาค และพารามิเตอร์อื่นๆ

โปรด ดาวน์โหลด JAR ของ API หรือเพิ่มการกำหนดค่า pom.xml ต่อไปนี้ในแอปพลิเคชัน Java ที่ใช้ 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>

อ่านบาร์โค้ดจากรูปภาพใน Java

เราสามารถอ่านบาร์โค้ดจากรูปภาพได้โดยทำตามขั้นตอนด้านล่าง:

  • ประการแรก โหลดรูปภาพโดยใช้คลาส BarCodeReader
  • รับผลการจดจำในวัตถุคลาส BarCodeResult โดยใช้เมธอด readBarCodes()
  • สุดท้าย วนซ้ำผลลัพธ์และแสดงประเภทและข้อความของบาร์โค้ด

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการอ่านบาร์โค้ดจากรูปภาพโดยใช้ Java

// ตัวอย่างรหัสนี้สาธิตวิธีการอ่านบาร์โค้ดจากรูปภาพ
// เส้นทางไปยังไดเร็กทอรีรูปภาพ
String dataDir = "C:\\Files\\BarCode\\";

// เริ่มต้นเครื่องอ่านบาร์โค้ด
BarCodeReader reader = new BarCodeReader(dataDir + "CodeText.jpg");

// อ่านบาร์โค้ดและแสดงผล
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
}
อ่านบาร์โค้ดจากรูปภาพ

อ่านบาร์โค้ดจากรูปภาพในภาษาจาวา

รู้จักบาร์โค้ดประเภทเฉพาะในภาษาจาวา

เราสามารถอ่านบาร์โค้ดประเภทใดประเภทหนึ่งจากรูปภาพได้โดยทำตามขั้นตอนด้านล่าง:

  • ประการแรก อ่านข้อมูลบัฟเฟอร์ของไฟล์รูปภาพโดยใช้เมธอด ImageIO.read()
  • จากนั้น สร้างอินสแตนซ์ของคลาส BarCodeReader ด้วยอิมเมจที่บัฟเฟอร์และประเภทการถอดรหัส
  • จากนั้น ตั้งค่าประเภทการถอดรหัสบาร์โค้ดเพื่ออ่านบาร์โค้ดของประเภทเฉพาะ เช่น CODE39STANDARD
  • หลังจากนั้น รับผลการจดจำในวัตถุคลาส BarCodeResult โดยใช้เมธอด readBarCodes()
  • สุดท้าย วนซ้ำผลลัพธ์และแสดงประเภทและข้อความของบาร์โค้ด

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการอ่านบาร์โค้ดของประเภทเฉพาะจากรูปภาพโดยใช้ Java

// ตัวอย่างโค้ดนี้สาธิตวิธีการอ่านบาร์โค้ดของประเภทการถอดรหัสเฉพาะจากรูปภาพ
// เส้นทางไปยังไดเร็กทอรีรูปภาพ
String dataDir = "C:\\Files\\BarCode\\";

// รับภาพที่บัฟเฟอร์
BufferedImage img = ImageIO.read(new File(dataDir + "CODE_39_STANDARD.jpg"));

// เริ่มต้นเครื่องอ่านบาร์โค้ด
BarCodeReader reader = new BarCodeReader(img, DecodeType.CODE_39_STANDARD);

// อ่านบาร์โค้ดประเภท Code39Extended
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
}
จดจำบาร์โค้ดประเภทเฉพาะ

จดจำบาร์โค้ดของประเภทเฉพาะใน Java

อ่านบาร์โค้ดหลายรายการจากอิมเมจใน Java

เรายังสามารถอ่านบาร์โค้ดที่มีอยู่ทั้งหมดจากรูปภาพได้โดยทำตามขั้นตอนด้านล่าง:

  • ประการแรก โหลดรูปภาพโดยใช้คลาส BarCodeReader
  • จากนั้น ตั้งค่าประเภทการถอดรหัสบาร์โค้ดเป็น ALLSUPPORTEDTYPES
  • หลังจากนั้น รับผลการจดจำในวัตถุคลาส BarCodeResult โดยใช้เมธอด readBarCodes()
  • สุดท้าย วนซ้ำผลลัพธ์และแสดงประเภทและข้อความของบาร์โค้ด

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการอ่านบาร์โค้ดหลายอันจากรูปภาพโดยใช้ Java

// ตัวอย่างรหัสนี้สาธิตวิธีการอ่านบาร์โค้ดหลายบาร์โค้ดจากรูปภาพ
// เส้นทางไปยังไดเร็กทอรีรูปภาพ
String dataDir = "C:\\Files\\BarCode\\";

// เริ่มต้นเครื่องอ่านบาร์โค้ด
BarCodeReader reader = new BarCodeReader(dataDir + "MultipleBarcodes.png", DecodeType.ALL_SUPPORTED_TYPES);

// อ่านบาร์โค้ดทุกประเภทที่มีอยู่ในภาพอินพุต
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
  System.out.println("-------------------------");
}
อ่านบาร์โค้ดหลายรายการจากรูปภาพ

อ่านหลายบาร์โค้ดจากภาพ

รับพิกัด X และ Y ของบาร์โค้ดโดยใช้ Java

เราสามารถอ่านพิกัด X และ Y ของบาร์โค้ดที่ตรวจจับได้จากภาพโดยทำตามขั้นตอนด้านล่าง:

  • ประการแรก โหลดรูปภาพโดยใช้คลาส BarCodeReader
  • ถัดไป รับผลการจดจำในวัตถุคลาส BarCodeResult โดยใช้เมธอด readBarCodes()
  • จากนั้นวนซ้ำผลลัพธ์และตรวจสอบว่า getRegion() ไม่เป็นโมฆะหรือไม่
  • หลังจากนั้น รับอาร์เรย์ Points ที่ล้อมรอบขอบเขตบาร์โค้ดโดยใช้ getPoints()
  • สุดท้าย แสดงจุด X และ Y ของบาร์โค้ด

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีรับจุดพิกัด X และ Y ของบาร์โค้ดจากรูปภาพโดยใช้ Java

// ตัวอย่างรหัสนี้สาธิตวิธีการอ่านจุด X & Y ของบาร์โค้ดจากรูปภาพ
// เส้นทางไปยังไดเร็กทอรีรูปภาพ
String dataDir = "C:\\Files\\BarCode\\";

// เริ่มต้นเครื่องอ่านบาร์โค้ด
BarCodeReader reader = new BarCodeReader(dataDir + "Code39Std.png", DecodeType.ALL_SUPPORTED_TYPES);

// อ่านบาร์โค้ด
for (BarCodeResult result : reader.readBarCodes()) {
  if (result.getRegion() != null) {
    // แสดงพิกัด x และ y ของบาร์โค้ดทั้งหมดที่ตรวจพบ
    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);
  }
}
รับพิกัด X และ Y ของบาร์โค้ด

รับพิกัด X และ Y ของบาร์โค้ดจากรูปภาพ

อ่านบาร์โค้ดจากภูมิภาคเฉพาะของภาพใน Java

เราสามารถอ่านบาร์โค้ดจากพื้นที่เฉพาะหรือพื้นที่ของภาพโดยทำตามขั้นตอนด้านล่าง:

  • ประการแรก อ่านข้อมูลบัฟเฟอร์ของไฟล์รูปภาพโดยใช้เมธอด ImageIO.read()
  • จากนั้น สร้างอินสแตนซ์ของคลาส BarCodeReader ใช้ภาพบัฟเฟอร์ พื้นที่สี่เหลี่ยมผืนผ้า และประเภทการถอดรหัสเป็นอาร์กิวเมนต์
  • หลังจากนั้น รับผลการจดจำในวัตถุคลาส BarCodeResult โดยใช้เมธอด readBarCodes()
  • สุดท้าย วนซ้ำผลลัพธ์และแสดงประเภทและข้อความของบาร์โค้ด

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการอ่านบาร์โค้ดจากพื้นที่เฉพาะของรูปภาพโดยใช้ Java

// ตัวอย่างรหัสนี้สาธิตวิธีการอ่านบาร์โค้ดจากพื้นที่เฉพาะของรูปภาพ
// เส้นทางไปยังไดเร็กทอรีรูปภาพ
String dataDir = "C:\\Files\\BarCode\\";

// รับภาพบัฟเฟอร์
java.awt.image.BufferedImage img = javax.imageio.ImageIO.read(new java.io.File(dataDir + "specificRegion.png"));

// สร้างอินสแตนซ์ของคลาส BarCodeReader
// และระบุพื้นที่ที่ต้องการค้นหาบาร์โค้ด
BarCodeReader reader = new BarCodeReader(img, new Rectangle(0, 0, 700, 100), DecodeType.ALL_SUPPORTED_TYPES);

// อ่านบาร์โค้ดทั้งหมดในพื้นที่ที่จัดเตรียมไว้
for (BarCodeResult result : reader.readBarCodes()) {
  System.out.println("CodeText: " + result.getCodeText());
  System.out.println("Symbology type: " + result.getCodeType());
}
อ่านบาร์โค้ดจากภูมิภาคเฉพาะของภาพ

อ่านบาร์โค้ดจากพื้นที่เฉพาะของรูปภาพใน Java

รับใบอนุญาตฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อทดลองใช้ห้องสมุดโดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

ในบทความนี้ เราได้เรียนรู้วิธีการ:

  • โหลดภาพบาร์โค้ดโดยทางโปรแกรม
  • จดจำบาร์โค้ดประเภทต่างๆ จากภาพ
  • อ่านพิกัดบาร์โค้ดใน Java;
  • ตรวจจับและอ่านบาร์โค้ดหลายอันจากภาพเดียว
  • ตรวจจับและอ่านบาร์โค้ดจากพื้นที่เฉพาะของภาพ

นอกจากนี้ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.BarCode for Java API โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราได้ที่ ฟอรัม

ดูสิ่งนี้ด้วย