Jak odczytywać kody QR przy użyciu różnych trybów skanowania
Odczytywanie kodów QR stało się rutynowym zadaniem w 2025 r., ponieważ coraz więcej produktów przechodzi na cyfryzację i stały dostęp do Internetu. Przechowywanie niezbędnych danych w kompaktowych, tylko do odczytu plikach jest obecnie standardem, a programiści potrzebują skutecznych sposobów na wyodrębnianie tych informacji w różnych srodowiskach.
IronQR oferuje 3 opcje odczytu kodów QR, z których każda jest przeznaczona do konkretnych zastosowań.
W tym poradniku wszystkie trzy metody zostaną wyjaśnione na jasnych przykładach. Jeśli jeszcze tego nie zrobiłeś, zapoznaj się z poprzednim przewodnikiem dotyczącym odczytywania kodów QR z obrazów lub tworzenia własnych kodów QR.
Jak odczytywać kody QR przy użyciu różnych trybów skanowania
- Pobierz bibliotekę C# do odczytu kodów QR z zaawansowanymi opcjami skanowania
- Załaduj docelowy plik obrazu
- Zainicjuj obiekt
QrImageInput,przekazując obraz i wymaganyQrScanMode - Utwórz instancję klasy
QrReaderi przekaż obiekt wejściowy do metodyRead - Pobierz wyniki, aby uzyskać dostęp do zdekodowanego tekstu
Valuelub przejdź przez tablicęPointsw celu uzyskania danych współrzędnych.
Zrozumienie trybów skanowania kodów QR
IronQR oferuje trzy potężne tryby skanowania poprzez enumerację QrScanMode:
- Tryb automatyczny (
QrScanMode.Auto): łączy wykrywanie za pomocą uczenia maszynowego z podstawowymi algorytmami skanowania dla maksymalnej dokładności i niezawodności - Tylko tryb podstawowego skanowania (
QrScanMode.OnlyBasicScan): używa konwencjonalnych technik przetwarzania obrazu do szybkiego i niezawodnego skanowania, gdy kody QR są wyraźnie widoczne - Tryb modelu detekcji (
QrScanMode.OnlyDetectionModel): Wykorzystuje uczenie maszynowe do wykrywania pozycji kodów QR, idealny do wyodrębniania danych o współrzędnych
Przyjrzyjmy się szczegółowo każdej z metod skanowania.
Tylko tryb skanowania podstawowego
Tylko tryb Basic Scan wykorzystuje tradycyjne algorytmy przetwarzania obrazu bez użycia uczenia maszynowego. Ta metoda jest szybka i skuteczna, gdy kody QR są dobrze widoczne i odpowiednio umieszczone; Jednak nadal działa na uszkodzonych kodach QR, jeśli trzy kwadraty w rogach są czytelne.
:path=/static-assets/qr/content-code-examples/how-to/read-qr-codes-with-scan-modes-basic.cs
using IronQr;
using IronQr.Enum;
using IronSoftware.Drawing;
using System.IO;
using System.Linq;
// Load the image
var bmp = AnyBitmap.FromFile("damaged-qr.png");
// Create scan input using Only Basic Scan mode
var input = new QrImageInput(bmp, QrScanMode.OnlyBasicScan);
// Get the result
var result = new QrReader().Read(input).FirstOrDefault();
// Save the output to a text file
File.WriteAllText("basic-scan-output.txt", result.Value);
Imports IronQr
Imports IronQr.Enum
Imports IronSoftware.Drawing
Imports System.IO
Imports System.Linq
' Load the image
Dim bmp = AnyBitmap.FromFile("damaged-qr.png")
' Create scan input using Only Basic Scan mode
Dim input = New QrImageInput(bmp, QrScanMode.OnlyBasicScan)
' Get the result
Dim result = (New QrReader()).Read(input).FirstOrDefault()
' Save the output to a text file
File.WriteAllText("basic-scan-output.txt", result.Value)
Skanuj dane wejściowe
Zapisany plik tekstowy
Tryb automatycznego skanowania
Tryb automatycznego skanowania jest domyślny (dla QrScanMode) i jest najbardziej wszechstronną dostępną opcją. Automatycznie łączy wykrywanie oparte na uczeniu maszynowym z tradycyjnymi algorytmami skanowania, aby zapewnić najlepsze możliwe wyniki w różnych warunkach obrazu.
Przykład pokazuje ładowanie obrazu i aktywowanie trybu Auto. Następnie skanuje obraz i zbiera każdy znaleziony kod QR do listy. Na koniec przechodzi przez kolekcję results i wyświetla tekst każdej wartości na konsoli (w tym przypadku tylko URL).
:path=/static-assets/qr/content-code-examples/how-to/read-qr-codes-with-scan-modes-auto.cs
using System;
using IronQr;
using IronQr.Enum;
using IronSoftware.Drawing;
// Load the image file
var bmp = AnyBitmap.FromFile("cup.png");
// Create scan input using Auto Scan mode
var input = new QrImageInput(bmp, QrScanMode.Auto);
// Scan and read all QR codes
var results = new QrReader().Read(input);
// Initialize a counter to track the number of QR codes
int count = 1;
// Loop through each discovered QR code
foreach (var result in results)
{
Console.WriteLine($"QR {count}: {result.Value}");
count++;
}
Imports System
Imports IronQr
Imports IronQr.Enum
Imports IronSoftware.Drawing
' Load the image file
Dim bmp = AnyBitmap.FromFile("cup.png")
' Create scan input using Auto Scan mode
Dim input = New QrImageInput(bmp, QrScanMode.Auto)
' Scan and read all QR codes
Dim results = New QrReader().Read(input)
' Initialize a counter to track the number of QR codes
Dim count As Integer = 1
' Loop through each discovered QR code
For Each result In results
Console.WriteLine($"QR {count}: {result.Value}")
count += 1
Next
Skanuj dane wejściowe
Wyświetlacz konsoli
Adres URL strony internetowej kawiarni jest rejestrowany po zeskanowaniu zdjęcia za pomocą IronQR.
Tryb modelu wykrywania
Tryb modelu wykrywania wykorzystuje uczenie maszynowe specjalnie do wykrywania pozycji kodów QR na obrazach. Ta cecha sprawia, że jest ono nieocenione w zastosowaniach związanych z analizą przestrzenną i wizją komputerową. System współrzędnych, którego używa, ma początek w (0, 0).
Ogólnie rzecz biorąc, skanery QR wykorzystują standardowe algorytmy dekodowania oparte na trzech wzorcach lokalizacyjnych; model ten rejestruje wszystkie cztery wierzchołki identyfikatora. Obiekt result zawiera kolekcję Points, przez którą należy przejść, aby uzyskać dane o położeniu.
Kod ponownie wykorzystuje zdjęcie kubka z poprzedniego przykładu, aby zademonstrować wykrywanie wartości pozycyjnych w obrazie.
:path=/static-assets/qr/content-code-examples/how-to/read-qr-codes-with-scan-modes-detection-model.cs
using System;
using IronQr;
using IronQr.Enum;
using IronSoftware.Drawing;
using System.Linq;
// Load the image
var bmp = AnyBitmap.FromFile("cup.png");
// Create scan input using Detection Model mode
var input = new QrImageInput(bmp, QrScanMode.OnlyDetectionModel);
// Read QR code
var result = new QrReader().Read(input).FirstOrDefault();
// Print position data
if (result != null)
{
if (result.Points != null)
{
foreach (var point in result.Points)
{
Console.WriteLine($"Point: X={point.X}, Y={point.Y}");
}
}
}
Imports System
Imports IronQr
Imports IronQr.Enum
Imports IronSoftware.Drawing
Imports System.Linq
' Load the image
Dim bmp = AnyBitmap.FromFile("cup.png")
' Create scan input using Detection Model mode
Dim input = New QrImageInput(bmp, QrScanMode.OnlyDetectionModel)
' Read QR code
Dim result = (New QrReader()).Read(input).FirstOrDefault()
' Print position data
If result IsNot Nothing Then
If result.Points IsNot Nothing Then
For Each point In result.Points
Console.WriteLine($"Point: X={point.X}, Y={point.Y}")
Next
End If
End If
Zdjęcie kubka z etykietą
Konsola z etykietami
Porównanie metod skanowania
Funkcja (QRScanMode) |
Skanowanie podstawowe (OnlyBasicScan) |
Skanowanie automatyczne (Auto) |
Model wykrywania (OnlyDetectionModel) |
|---|---|---|---|
| Wynik | Tekst po tłumaczeniu (wartość) | Tekst po tłumaczeniu (wartość) | Współrzędne (punkty) |
| Algorytm | Tylko tradycyjne | Hybrydowe (ML + tradycyjne) | Tylko uczenie maszynowe |
| Skup się na | Szybkość | Czytelność / Wyszukiwanie | Lokalizacja / Wizja komputerowa |
Wnioski
Trzy tryby skanowania IronQR zapewniają elastyczność w każdym scenariuszu odczytu kodów QR:
- Skanowanie automatyczne: maksymalna dokładność i niezawodność do ogólnego zastosowania
- Skanowanie podstawowe: szybkość i wydajność zapewniające wysoką jakość obrazów
- Model wykrywania: rozpoznawanie położenia dla aplikacji przestrzennych
Zrozumienie zalet każdej z metod pozwala zoptymalizować implementację odczytu kodów QR pod kątem konkretnych wymagań. Niezależnie od tego, czy potrzebujesz kompleksowego pozyskiwania danych, błyskawicznego przetwarzania czy precyzyjnego wykrywania położenia, IronQR spełni Twoje oczekiwania.
Aby uzyskać więcej przykładów i szczegółowe informacje o API, odwiedź dokumentację IronQR lub zapoznaj się z przykładami kodu na GitHubie.
Często Zadawane Pytania
Jakie są dostępne tryby skanowania do odczytu kodów QR?
IronQR oferuje różne tryby skanowania, takie jak skanowanie automatyczne, ręczne i wsadowe, aby efektywnie odczytywać kody QR w różnych sytuacjach.
Jak zaimplementować skanowanie kodów QR w projekcie C#?
Możesz zaimplementować skanowanie kodów QR w projekcie C# poprzez integrację biblioteki IronQR, która zapewnia łatwe w użyciu metody odczytu kodów QR z różnymi trybami skanowania.
Jakie są zalety korzystania z IronQR do skanowania kodów QR?
IronQR zapewnia wysoką dokładność, szybkie przetwarzanie i obsługuje różne tryby skanowania, co czyni go wszechstronnym wyborem do skanowania kodów QR w projektach C#.
Czy za pomocą IronQR można odczytać wiele kodów QR jednocześnie?
Tak, IronQR obsługuje tryb skanowania wsadowego, umożliwiający jednoczesne odczytywanie wielu kodów QR w celu zwiększenia wydajności.
Czy IronQR obsługuje skanowanie kodów QR z różnych źródeł?
IronQR może skanować kody QR z różnych źródeł, w tym obrazów, plików PDF i obrazu z kamery na żywo, zapewniając programistom elastyczność.
Czy IronQR obsługuje kody QR o różnych orientacjach?
Tak, IronQR został zaprojektowany tak, aby dokładnie odczytywać kody QR niezależnie od ich orientacji, zapewniając niezawodne wyniki skanowania.
Jak działa tryb automatycznego skanowania w IronQR?
Tryb automatycznego skanowania w IronQR inteligentnie wykrywa i odczytuje kody QR bez konieczności ręcznego wprowadzania danych, usprawniając proces skanowania.
Jakie umiejętności programistyczne są wymagane do korzystania z IronQR do skanowania kodów QR?
Do korzystania z IronQR do skanowania kodów QR wystarczy podstawowa znajomość programowania w języku C#, ponieważ biblioteka IronQR oferuje prostą integrację i obsługę.
Czy dostępna jest wersja próbna IronQR do przetestowania?
Tak, IronQR oferuje wersję próbną, która pozwala programistom przetestować jego funkcje i tryby skanowania przed podjęciem decyzji o zakupie.
Gdzie mogę pobrać bibliotekę IronQR?
Bibliotekę IronQR można pobrać ze strony internetowej Iron Software, gdzie można również znaleźć dokumentację i zasoby pomocy technicznej.

