อ่านบาร์โค้ดจากภาพใน C#

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

ก่อนอื่นเราจะมาดูที่ C# Barcode Reader API เพื่ออ่านบาร์โค้ดที่มีอยู่ในภาพที่นำเข้า ต่อไปเราจะเดินผ่านขั้นตอนของวิธีการตรวจจับ รับรู้ และดึงข้อมูลบาร์โค้ดจากภาพ คุณจะพบกับขั้นตอนโดยละเอียดและตัวอย่างโค้ด สุดท้ายเราจะให้ลิงค์ที่เป็นประโยชน์สำหรับการปรับปรุงเพิ่มเติม ดังนั้นเรามาเริ่มกันเถอะ!

หัวข้อดังต่อไปนี้จะถูกกล่าวถึงในบทความนี้:

  1. C# API เพื่ออ่านบาร์โค้ดจากภาพ
  2. ขั้นตอนในการอ่านบาร์โค้ดจากภาพ
  3. อ่านบาร์โค้ดจาก Bitmap
  4. อ่านบาร์โค้ดจากภาพโดยใช้ Stream
  5. วิธีอ่านบาร์โค้ดประเภทเฉพาะ
  6. อ่านบาร์โค้ดหลายประเภทจากภาพ
  7. ตรวจจับและอ่านชุดสัญลักษณ์ที่กำหนดไว้ล่วงหน้า
  8. ตรวจจับและอ่านบาร์โค้ดหลายรายการจากภาพ
  9. รับพิกัด X และ Y ของบาร์โค้ด
  10. อ่านบาร์โค้ดจากพื้นที่เฉพาะของภาพ
  11. อ่านบาร์โค้ดจากหลายพื้นที่ของภาพ

C# API เพื่ออ่านบาร์โค้ดจากภาพ

ในการอ่านบาร์โค้ดจากภาพเราจะใช้ Aspose.BarCode for .NET API API นี้ช่วยให้เราสามารถสร้าง สแกน และอ่านบาร์โค้ดประเภทต่าง ๆ ได้ สัญลักษณ์บาร์โค้ด API นี้ช่วยให้เราสามารถสร้างภาพบาร์โค้ดในรูปแบบ JPEG, TIFF, PNG, BMP, และ GIF

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

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

กรุณา ดาวน์โหลด DLL ของ API หรือทำการติดตั้งโดยใช้ NuGet

PM> Install-Package Aspose.BarCode 

อ่านบาร์โค้ดจากภาพโดยใช้ C#

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

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

ตัวอย่างโค้ดด้านล่างแสดงให้เห็นว่า วิธีการอ่านบาร์โค้ดจากภาพใน C#.

อ่านบาร์โค้ดจากภาพ.

อ่านบาร์โค้ดจากภาพใน C#.

อ่านบาร์โค้ดจาก Bitmap ใน C#

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

  1. ก่อนอื่นโหลดภาพโดยใช้คลาส Bitmap
  2. จากนั้นสร้างอ็อบเจ็กต์ของคลาส BarCodeReader ที่มีอ็อบเจ็กต์ Bitmap
  3. เรียกใช้เมธอด ReadBarCodes() และรับผลลัพธ์การรับรู้ในอ็อบเจ็กต์คลาส BarCodeResult
  4. สุดท้ายให้ทำการวนลูปผ่านผลลัพธ์และแสดงประเภทและข้อความของบาร์โค้ด

ตัวอย่างโค้ดด้านล่างแสดงให้เห็นว่า วิธีการอ่านบาร์โค้ดจาก bitmap ใน C#.

อ่านบาร์โค้ดจากภาพ Bitmap ใน C#.

อ่านบาร์โค้ดจาก Bitmap ใน C#.

อ่านบาร์โค้ดจากภาพโดยใช้ Stream ใน C#

เรายังสามารถโหลดภาพบาร์โค้ดโดยใช้ไฟล์ Stream และอ่านบาร์โค้ดโดยทำตามขั้นตอนที่กำหนดไว้ด้านล่าง:

  1. ก่อนอื่นโหลดภาพโดยใช้คลาส FileStream
  2. จากนั้นสร้างอ็อบเจ็กต์ของคลาส BarCodeReader โดยใช้สตรีม
  3. เรียกใช้เมธอด ReadBarCodes() และรับผลลัพธ์การรับรู้ในอ็อบเจ็กต์คลาส BarCodeResult
  4. สุดท้ายให้ทำการวนลูปผ่านผลลัพธ์และแสดงประเภทและข้อความของบาร์โค้ด

ตัวอย่างโค้ดด้านล่างแสดงให้เห็นว่า วิธีการอ่านบาร์โค้ดจากภาพโดยใช้ Stream ใน C#.

อ่านบาร์โค้ดประเภทเฉพาะจากภาพใน C#

แนะนำให้เลือกสัญลักษณ์บาร์โค้ดเป้าหมายที่ควรพิจารณาเพื่อการรับรู้เพื่อที่จะลดระยะเวลาที่ใช้ในการทำการรับรู้และหลีกเลี่ยงความพยายามในการรับรู้บาร์โค้ดที่ล้าสมัย

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

  1. ก่อนอื่นโหลดภาพโดยใช้คลาส BarCodeReader
  2. จากนั้นตั้งค่าประเภทการถอดรหัสบาร์โค้ด เช่น Code39Standard
  3. หลังจากนั้นให้รับผลลัพธ์การรับรู้ในอ็อบเจ็กต์คลาส BarCodeResult โดยใช้เมธอด ReadBarCodes()
  4. สุดท้ายให้ทำการวนลูปผ่านผลลัพธ์และแสดงประเภทและข้อความของบาร์โค้ด

ตัวอย่างโค้ดด้านล่างแสดงให้เห็นว่า วิธีการอ่านบาร์โค้ดประเภทเฉพาะจากภาพโดยใช้ C#.

ตรวจจับบาร์โค้ดประเภทเฉพาะจากภาพ

ตรวจจับบาร์โค้ดประเภทเฉพาะจากภาพใน C#.

อ่านบาร์โค้ดหลายประเภทจากภาพใน C#

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

  1. ก่อนอื่นโหลดภาพโดยใช้คลาส BarCodeReader
  2. จากนั้นตั้งค่าประเภทการถอดรหัสบาร์โค้ดโดยใช้เมธอด SetBarCodeReadType()
  3. หลังจากนั้นให้รับผลลัพธ์การรับรู้ในอ็อบเจ็กต์คลาส BarCodeResult โดยใช้เมธอด ReadBarCodes()
  4. สุดท้ายให้ทำการวนลูปผ่านผลลัพธ์และแสดงประเภทและข้อความของบาร์โค้ด

ตัวอย่างโค้ดด้านล่างแสดงให้เห็นว่า วิธีการอ่านบาร์โค้ดหลายประเภทจากภาพโดยใช้ C#.

อ่านบาร์โค้ดหลายประเภทจากภาพใน C#

อ่านบาร์โค้ดหลายประเภทจากภาพใน C#

เรายังสามารถระบุประเภทการถอดรหัสหลายประเภทในคอนสตรัคเตอร์ของคลาส BarCodeReader ได้ดังนี้:

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

อ่านชุดบาร์โค้ดประเภทที่กำหนดไว้ล่วงหน้าจากภาพใน C#

เราสามารถอ่านชุดสัญลักษณ์ที่กำหนดไว้ล่วงหน้าสำหรับการรับรู้ที่กำหนดในคลาส DecodeTypes เราสามารถตั้งค่าชุดใดชุดหนึ่งจากชุดที่กำหนดไว้ดังนี้:

  • AllSupportedTypes - ประเภทบาร์โค้ดที่รองรับทั้งหมด
  • Types1D - สัญลักษณ์ 1D ที่รองรับทั้งหมด
  • Types2D - สัญลักษณ์ 2D ที่รองรับทั้งหมด
  • PostalTypes - สัญลักษณ์ไปรษณีย์ที่รองรับทั้งหมดที่ใช้โดยบริการไปรษณีย์
  • MostCommonTypes - ชุดมาตรฐานบาร์โค้ดที่ใช้กันอย่างแพร่หลายที่สุด

เราสามารถระบุชุดที่กำหนดไว้ล่วงหน้าโดยทำตามขั้นตอนที่กำหนดไว้ด้านล่าง:

  1. ก่อนอื่นโหลดภาพโดยใช้คลาส BarCodeReader
  2. จากนั้นตั้งค่าประเภทการถอดรหัสบาร์โค้ดในคอนสตรัคเตอร์ของ BarCodeReader หรือเมธอด SetBarCodeReadType เช่น DecodeType.Types2D
  3. หลังจากนั้นให้รับผลลัพธ์การรับรู้ในอ็อบเจ็กต์คลาส BarCodeResult โดยใช้เมธอด ReadBarCodes()
  4. สุดท้ายให้ทำการวนลูปผ่านผลลัพธ์และแสดงประเภทและข้อความของบาร์โค้ด

ตัวอย่างโค้ดด้านล่างแสดงให้เห็นว่า วิธีการอ่านบาร์โค้ดโดยใช้ชุดสัญลักษณ์ที่กำหนดไว้ล่วงหน้าใน C#.

อ่านชุดบาร์โค้ดประเภทที่กำหนดไว้ล่วงหน้าจากภาพใน C#

อ่านชุดบาร์โค้ดประเภทที่กำหนดไว้ล่วงหน้าจากภาพใน C#

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

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

  1. ก่อนอื่นโหลดภาพโดยใช้คลาส BarCodeReader
  2. จากนั้นตั้งค่าประเภทการถอดรหัสบาร์โค้ดเป็น ALL_SUPPORTED_TYPES
  3. หลังจากนั้นให้รับผลลัพธ์การรับรู้ในอ็อบเจ็กต์คลาส BarCodeResult โดยใช้เมธอด ReadBarCodes()
  4. สุดท้ายให้ทำการวนลูปผ่านผลลัพธ์และแสดงประเภทและข้อความของบาร์โค้ด

ตัวอย่างโค้ดด้านล่างแสดงให้เห็นว่า วิธีการอ่านบาร์โค้ดหลายรายการจากภาพโดยใช้ C#.

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

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

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

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

  1. ก่อนอื่นโหลดภาพโดยใช้คลาส BarCodeReader
  2. จากนั้นรับผลลัพธ์การรับรู้ในอ็อบเจ็กต์คลาส BarCodeResult โดยใช้เมธอด ReadBarCodes()
  3. จากนั้นวนลูปผ่านผลลัพธ์และตรวจสอบว่า Region ไม่เป็น null
  4. หลังจากนั้นให้รับอาร์เรย์ Points ที่ล้อมรอบพื้นที่บาร์โค้ดโดยใช้ Points
  5. สุดท้ายให้แสดงพิกัด X และ Y ของบาร์โค้ด

ตัวอย่างโค้ดด้านล่างแสดงให้เห็นว่า วิธีการรับพิกัด X และ Y ของบาร์โค้ดจากภาพโดยใช้ C#.

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

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

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

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

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

ตัวอย่างโค้ดด้านล่างแสดงให้เห็นว่า วิธีการอ่านบาร์โค้ดจากพื้นที่เฉพาะของภาพโดยใช้ C#.

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

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

อ่านบาร์โค้ดจากหลายพื้นที่ของภาพใน C#

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

  1. ก่อนอื่นโหลดภาพโดยใช้คลาส Bitmap
  2. จากนั้นกำหนดพื้นที่สี่เหลี่ยมโดยใช้คลาส Rectangle
  3. จากนั้นสร้างอ็อบเจ็กต์ของคลาส BarCodeReader
  4. ในระหว่างนั้นเรียกใช้ SetBarCodeImage() โดยใช้วัตถุภาพและพื้นที่สี่เหลี่ยมเป็นอาร์กิวเมนต์
  5. ตามต้องการตั้งค่าประเภทการอ่านบาร์โค้ดโดยใช้เมธอด SetBarCodeReadType()
  6. หลังจากนั้นให้รับผลลัพธ์การรับรู้ในอ็อบเจ็กต์คลาส BarCodeResult โดยใช้เมธอด ReadBarCodes()
  7. สุดท้ายให้ทำการวนลูปผ่านผลลัพธ์และแสดงประเภทและข้อความของบาร์โค้ด

ตัวอย่างโค้ดด้านล่างแสดงให้เห็นว่า วิธีการอ่านบาร์โค้ดจากหลายพื้นที่ของภาพโดยใช้ C#.

อ่านบาร์โค้ดจากหลายพื้นที่ของภาพ.

อ่านบาร์โค้ดจากหลายพื้นที่ของภาพใน C#.

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

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

สรุป

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

  • โหลดไฟล์ภาพบาร์โค้ด;
  • อ่านภาพในรูปแบบ bitmap หรือโดยใช้ไฟล์ stream;
  • รับรู้บาร์โค้ดประเภทต่าง ๆ จากภาพ;
  • อ่านพิกัดบาร์โค้ด;
  • ตรวจจับและอ่านบาร์โค้ดหลายรายการจากภาพเดียว;
  • ตรวจจับและอ่านบาร์โค้ดจากพื้นที่เฉพาะของภาพ.

นอกจากการอ่านบาร์โค้ดจากภาพใน C# แล้ว คุณยังสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.BarCode for .NET API โดยใช้ เอกสาร หากมีข้อสงสัยใด ๆ โปรดอย่าลังเลที่จะติดต่อเราที่ ฟอรัมสนับสนุนฟรี.

ดูเพิ่มเติม