วิธีการสแกนหลายรหัส QR ในภาพเดียวโดยใช้ Aspose.BarCode สําหรับ .NET

วิธีการสแกนหลายรหัส 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 ไฟฉาย .

 แบบไทย