วิธีการสแกนหลายรหัส QR ในภาพเดียวโดยใช้ Aspose.BarCode สําหรับ .NET
บทความนี้แสดงให้เห็นถึงวิธีการสแกนและตกแต่งหลายรหัส QR ที่ปรากฏในภาพเดียว โดยใช้ Aspose.BarCode สําหรับ .NET ห้องสมุดอนุญาตให้การตรวจจับและสกัดชุดทําให้ง่ายต่อการประมวลผลแบบฟอร์มตั๋วแท็กหรือเอกสารอื่น ๆ ที่มีร codes QR หลายครั้ง
ปัญหาโลกจริง
องค์กรมักจะได้รับหรือสร้างภาพ (รูปแบบสแกน, แท็กจํานวนมาก, passes กิจกรรม, ฯลฯ) ซึ่งมีหลายรหัส QR การสํารวจด้วยตนเองของแต่ละโค้ดนั้นช้าและไม่ปฏิบัติ ผู้พัฒนาต้องการวิธีที่รวดเร็วและน่าเชื่อถือในการประมวลผลร่อง QR ทั้งหมดจากภาพดังกล่าวในขั้นตอนเดียว
ความคิดเห็นเกี่ยวกับโซลูชัน
Aspose.BarCode สําหรับ .NET สนับสนุนการรับรู้ QR ชุด: มันสามารถสแกนและ decode รหัส QR ทั้งหมดภายในไฟล์ภาพเดียวหรือกระแส ผลลัพธ์คือการรวบรวมวัตถุ decoded ซึ่งช่วยให้การอัตโนมัติเอกสารที่มีประสิทธิภาพสูงการยืนยันตั๋วหรือการไหลงานการเก็บข้อมูล
ข้อกําหนด
ก่อนที่คุณจะเริ่มต้นให้แน่ใจว่าคุณมี:
- Visual Studio 2019 หรือภายหลัง
- .NET 6.0 หรือเร็วกว่า (หรือ .Net Framework 4.6.2+)
- Aspose.BarCode สําหรับ .NET ติดตั้งผ่าน NuGet
- ความรู้พื้นฐานของ C#
PM> Install-Package Aspose.BarCode
การดําเนินการขั้นตอนขั้นตอน
ขั้นตอน 1: ติดตั้งและตั้งค่า Aspose.BarCode
เพิ่มแพคเกจ Aspose.BarCode และรวมพื้นที่ชื่อที่ต้องการ:
using Aspose.BarCode.BarCodeRecognition;
ขั้นตอนที่ 2: การเตรียมข้อมูลการเข้า
การเตรียมหรือรับไฟล์ภาพที่มีรหัส QR มากมาย (เช่น “multi_qr_sample.png”)
string imagePath = "multi_qr_sample.png";
ขั้นตอนที่ 3: การตั้งค่าตัวเลือกการรับรู้รหัส QR
ติดตั้งเครื่องอ่านรหัสบาร์สําหรับการสแกน QR ไม่จําเป็นต้องมีตัวเลือกชุดเพิ่มเติม: เครื่องอ่านจะตรวจจับร่อง QR ทั้งหมดที่อยู่
BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR);
ขั้นตอน 4: การดําเนินการกระบวนการสแกน QR Batch
Iterate ผ่านรหัส QR ที่ได้รับการยอมรับทั้งหมด:
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.WriteLine($"Type: {result.CodeTypeName}");
Console.WriteLine($"Text: {result.CodeText}");
}
ขั้นตอน 5: การจัดการผลผลิตและหลังการประมวลผล
บันทึกการรับรองหรือประมวลผลข้อมูล QR ที่ได้รับการเข้ารหัสตามความต้องการของแอพพลิเคชันของคุณ (การเข้าสู่ระบบฐานข้อมูลการยืนยันเหตุการณ์ ฯลฯ )
ขั้นตอนที่ 6: การดําเนินการจัดการข้อผิดพลาด
try
{
using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR))
{
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.WriteLine($"Type: {result.CodeTypeName}");
Console.WriteLine($"Text: {result.CodeText}");
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
ตัวอย่างที่สมบูรณ์
using Aspose.BarCode.BarCodeRecognition;
using System;
class Program
{
static void Main()
{
string imagePath = "multi_qr_sample.png";
try
{
using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR))
{
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.WriteLine($"Type: {result.CodeTypeName}");
Console.WriteLine($"Text: {result.CodeText}");
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}
ใช้กรณีและแอปพลิเคชัน
- **การสแกนตั๋วหรือผ่าน: **ระบบการเข้าชมในเหตุการณ์หรือสถานีการขนส่ง
- Batch Document Automation: extract metadata จากแบบฟอร์มหรือหน้าสแกน
- **การจัดเก็บและจัดการสินทรัพย์:**สแกนรหัส QR มากมายบนแท็กเดียวหรือแร่
ความท้าทายและโซลูชั่นทั่วไป
ความท้าทาย 1: รหัส QR มีความใกล้ชิดเกินไปโซลูชัน : ใช้พื้นที่เงียบสงบที่ชัดเจนรอบคอบแต่ละรหัสในการออกแบบการพิมพ์ / การจัดตั้ง
ความท้าทาย 2: บางรหัส QR ไม่พบโซลูชัน : เพิ่มความละเอียดของภาพหรือประมวลผลก่อนหน้าภาพ (เช่นขอบเขต) เพื่อปรับปรุงความชัดเจน
ท้าทาย 3: บาร์โค้ดที่ไม่พึงประสงค์ที่มีอยู่โซลูชัน : จํากัด decoding strictly to QR โดยใช้ DecodeType.QR
เท่านั้น
การพิจารณาประสิทธิภาพ
- ใช้ Streams หรือ Memory Buffers สําหรับแอปพลิเคชันที่มีประสิทธิภาพสูง
- มีวัตถุของผู้อ่านเพื่อรักษาทรัพยากร
- การปรับขนาดภาพเพื่อความสมดุลที่ดีที่สุดของความเร็วและความแม่นยํา
แนวทางที่ดีที่สุด
- ตรวจสอบผลลัพธ์แต่ละ decoded ก่อนที่จะใช้
- ผลลัพธ์บันทึกสําหรับการติดตามและการตรวจสอบ
- การสแกนชุดทดสอบด้วยภาพตัวอย่างที่หลากหลาย
- ปรับประกันการแยกที่ชัดเจนของรหัส QR ในโครงสร้างเอกสาร
การ์ตูนขั้นสูง
1. การสแกนรหัส QR จาก MemoryStream
using (FileStream fs = File.OpenRead(imagePath))
using (BarCodeReader reader = new BarCodeReader(fs, DecodeType.QR))
{
foreach (BarCodeResult result in reader.ReadBarCodes())
{
Console.WriteLine(result.CodeText);
}
}
2. ผลของกระบวนการสําหรับการเข้าสู่ฐานข้อมูล
List<string> qrData = new List<string>();
using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR))
{
foreach (BarCodeResult result in reader.ReadBarCodes())
{
qrData.Add(result.CodeText);
}
}
// Insert qrData into database as needed
ข้อสรุป
ด้วย Aspose.BarCode สําหรับ .NET คุณสามารถสแกนรหัส QR ทั้งหมดที่มีอยู่ในภาพเดียวได้อย่างมีประสิทธิภาพช่วยให้มีการอัตโนมัติปริมาณสูงในการจัดการเหตุการณ์การติดตามสินทรัพย์หรือการทํางานของเอกสาร
สําหรับรายละเอียดเพิ่มเติมดู Aspose.BarCode ไฟฉาย .