Przejdź do treści stopki
KORZYSTANIE Z IRONBARCODE

C# Czytnik kodów QR (Samouczek krok po kroku dla początkującego)

W dzisiejszym cyfrowo napędzanym świecie kody QR (kody szybkiej odpowiedzi) stały się wszechobecne, bezproblemowo łącząc światy fizyczny i cyfrowy. Od marketingu po logistykę, finanse po opiekę zdrowotną, kody QR odgrywają kluczową rolę w ułatwianiu efektywnej wymiany danych.

W tym artykule zagłębiamy się w świat rozwoju C#, badając, jak IronQR, jedna z najlepszych bibliotek kodów QR na rynku, umożliwia programistom wykorzystanie mocy rozpoznawania kodów QR, bez trudu dekodowanie danych i wprowadzanie innowacji w różnych dziedzinach.

IronQR od Iron Software wyróżnia się jako solidna biblioteka .NET do odczytu kodów QR. Zaawansowany model uczenia maszynowego wdrożony przez IronQR umożliwia Twoim aplikacjom dekodowanie kodów QR z niezrównaną dokładnością i wydajnością, nawet w trudnych warunkach.

Jak czytać kody QR za pomocą C# z IronQR

  1. Utwórz projekt Visual Studio z szablonem aplikacji Windows Forms .NET.
  2. Zainstaluj IronQR z menedżera pakietów NuGet.
  3. Pobierz kod QR z kamery jako obraz przy użyciu biblioteki AForge.
  4. Czytaj kody QR za pomocą IronQR.

IronQR wyróżnia się jako najważniejsza biblioteka C# do odczytu kodów QR, zaprojektowana zarówno do skanowania, jak i generowania obrazów kodów QR w ramach .NET framework. Dzięki wykorzystaniu nowoczesnej technologii ML, IronQR podniosło czytanie kodów QR na niespotykany dotąd poziom.

Niezależnie od tego, czy skanujesz kody QR z obrazów, filmów, czy jałowych streamów z kamery, rozwiązanie oparte na ML gwarantuje szybkie i niezawodne pozyskiwanie informacji.

To innowacyjne podejście nie tylko usprawnia ekstrakcję danych, ale także zwiększa bezpieczeństwo, rozróżniając autentyczne kody QR od potencjalnych zagrożeń. Dzięki intuicyjnemu API deweloperzy mogą bezproblemowo zintegrować funkcje kodów QR z projektami .NET w ciągu kilku minut.

IronQR bezproblemowo integruje się z .NET Core (8, 7, 6, 5 i 3.1+), .NET Standard (2.0+) oraz .NET Framework (4.6.2+). Obecna wersja .NET Core rozszerza swoje wsparcie dla systemów operacyjnych klienta, takich jak Linux, Unix i macOS, a także umożliwia rozwijanie aplikacji mobilnych.

Wymagania wstępne

  1. Visual Studio: Upewnij się, że zainstalowałeś Visual Studio lub dowolne inne środowisko programistyczne .NET.
  2. Kompatybilna Kamera: Upewnij się, że kamera jest podłączona do Twojego urządzenia.
  3. Menedżer Pakietów NuGet: Zweryfikuj, czy możesz wykorzystać NuGet do zarządzania pakietami w swoim projekcie.

Krok 1: Utwórz projekt Visual Studio z szablonem aplikacji Windows Forms .NET

Rozpocznijmy od stworzenia aplikacji Windows Forms .NET w celu odczytu kodów kreskowych QR ze strumieni video z kamery lub plików obrazów. Otwórz Visual Studio, wybierz Utwórz Nowy Projekt, a następnie wybierz szablon aplikacji Windows Forms .NET.

Visual Studio Setup

Kliknij Dalej i wprowadź nazwę projektu.

Project Naming

Wybierz pożądane wersje .NET, a następnie kliknij przycisk Utwórz.

Create Project

Krok 2: Zainstaluj IronQR z menedżera pakietów NuGet

IronQR można zainstalować za pomocą menedżera pakietów NuGet lub menedżera pakietów Visual Studio.

NuGet Installation

Poniżej pokazano, jak można to zrobić za pomocą Visual Studio.

Visual Studio NuGet

Krok 3: Pobierz kod QR z kamery jako obraz przy użyciu biblioteki AForge

Aby skanować kody QR z urządzeń kamer, musimy zainstalować bibliotekę AForge.Video.DirectShow. Można to zrobić za pomocą menedżera pakietów Visual Studio. Kliknij prawym przyciskiem myszy na Eksplorator Rozwiązania i otwórz Menedżera Pakietów.

AForge Installation Step 1

Ta biblioteka może być również zainstalowana przy użyciu konsoli pakietów NuGet, jak pokazano poniżej. Kliknij przycisk Instaluj, aby zainstalować bibliotekę.

AForge Installation Step 2

Krok 4: Czytaj kody QR za pomocą IronQR

Następnym krokiem jest stworzenie komponentu PictureBox w Formularzu, który jest potrzebny do skanowania obrazu kodu QR z urządzenia kamery podłączonego do maszyny.

Można to zrobić przez przeciągnięcie i upuszczenie z paska narzędzi. Ten PictureBox jest wymagany do odczytu danych kodu QR z urządzenia kamery.

Add PictureBox

Następnie przeciągnij i upuść pole tekstowe, aby wyświetlić odczytane kody QR.

Add TextBox

Dodaj poniższy kod, aby odczytać kody QR i zdekodować je przy użyciu IronQR.

using AForge.Video.DirectShow;
using AForge.Video;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using IronQR;

namespace ReadQR
{
    public partial class Form1 : Form
    {
        // Declare a video capture device
        private VideoCaptureDevice videoSource;

        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;
            this.FormClosing += Form1_FormClosing;
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            // Stop the video source when the form is closing
            if (videoSource != null && videoSource.IsRunning)
            {
                videoSource.SignalToStop();
                videoSource.WaitForStop();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Retrieve video input devices connected to the machine
            FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            if (videoDevices.Count > 0)
            {
                // Use the first available video device
                videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
                videoSource.NewFrame += VideoSource_NewFrame;
                videoSource.Start();
            }
            else
            {
                MessageBox.Show("No video devices found.");
                Close();
            }
        }

        private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            // Update the PictureBox with the new frame from the camera
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();

            var image = (Bitmap)eventArgs.Frame.Clone();

            // Set the license key for IronQR. Replace "YourKey" with your actual key
            License.LicenseKey = "YourKey";

            // Prepare the image for QR code reading
            QrImageInput imageInput = new QrImageInput(image);

            // Create a QR reader object
            QrReader reader = new QrReader();

            // Read QR codes from the image
            IEnumerable<QrResult> results = reader.Read(imageInput);

            // Display the first QR code result in a MessageBox
            if (results.Any())
            {
                MessageBox.Show(results.First().Value);
            }
        }
    }
}
using AForge.Video.DirectShow;
using AForge.Video;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using IronQR;

namespace ReadQR
{
    public partial class Form1 : Form
    {
        // Declare a video capture device
        private VideoCaptureDevice videoSource;

        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;
            this.FormClosing += Form1_FormClosing;
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            // Stop the video source when the form is closing
            if (videoSource != null && videoSource.IsRunning)
            {
                videoSource.SignalToStop();
                videoSource.WaitForStop();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Retrieve video input devices connected to the machine
            FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            if (videoDevices.Count > 0)
            {
                // Use the first available video device
                videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
                videoSource.NewFrame += VideoSource_NewFrame;
                videoSource.Start();
            }
            else
            {
                MessageBox.Show("No video devices found.");
                Close();
            }
        }

        private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            // Update the PictureBox with the new frame from the camera
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();

            var image = (Bitmap)eventArgs.Frame.Clone();

            // Set the license key for IronQR. Replace "YourKey" with your actual key
            License.LicenseKey = "YourKey";

            // Prepare the image for QR code reading
            QrImageInput imageInput = new QrImageInput(image);

            // Create a QR reader object
            QrReader reader = new QrReader();

            // Read QR codes from the image
            IEnumerable<QrResult> results = reader.Read(imageInput);

            // Display the first QR code result in a MessageBox
            if (results.Any())
            {
                MessageBox.Show(results.First().Value);
            }
        }
    }
}
Imports AForge.Video.DirectShow
Imports AForge.Video
Imports System
Imports System.Collections.Generic
Imports System.Drawing
Imports System.Linq
Imports System.Windows.Forms
Imports IronQR

Namespace ReadQR
	Partial Public Class Form1
		Inherits Form

		' Declare a video capture device
		Private videoSource As VideoCaptureDevice

		Public Sub New()
			InitializeComponent()
			AddHandler Me.Load, AddressOf Form1_Load
			AddHandler Me.FormClosing, AddressOf Form1_FormClosing
		End Sub

		Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs)
			' Stop the video source when the form is closing
			If videoSource IsNot Nothing AndAlso videoSource.IsRunning Then
				videoSource.SignalToStop()
				videoSource.WaitForStop()
			End If
		End Sub

		Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
			' Retrieve video input devices connected to the machine
			Dim videoDevices As New FilterInfoCollection(FilterCategory.VideoInputDevice)

			If videoDevices.Count > 0 Then
				' Use the first available video device
				videoSource = New VideoCaptureDevice(videoDevices(0).MonikerString)
				AddHandler videoSource.NewFrame, AddressOf VideoSource_NewFrame
				videoSource.Start()
			Else
				MessageBox.Show("No video devices found.")
				Close()
			End If
		End Sub

		Private Sub VideoSource_NewFrame(ByVal sender As Object, ByVal eventArgs As NewFrameEventArgs)
			' Update the PictureBox with the new frame from the camera
			pictureBox1.Image = DirectCast(eventArgs.Frame.Clone(), Bitmap)

			Dim image = DirectCast(eventArgs.Frame.Clone(), Bitmap)

			' Set the license key for IronQR. Replace "YourKey" with your actual key
			License.LicenseKey = "YourKey"

			' Prepare the image for QR code reading
			Dim imageInput As New QrImageInput(image)

			' Create a QR reader object
			Dim reader As New QrReader()

			' Read QR codes from the image
			Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)

			' Display the first QR code result in a MessageBox
			If results.Any() Then
				MessageBox.Show(results.First().Value)
			End If
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Plik obrazu wejściowego

Tekst zakodowany w kodzie QR to: Uwielbiam IronQR

QR Code Example

Wynik

QR Code Result

Wyjaśnienie Przykładu Kodu

  1. Zarejestrowaliśmy dwa zdarzenia w Windows Forms: Form1_Load i Form1_FormClosing.
  2. Zarejestrowaliśmy również VideoSource_NewFrame do instancji videoSource z biblioteki AForge.Video.DirectShow.
  3. Odczytujemy kody QR z strumienia video na żywo.
  4. Gdy kod QR jest wykrywany, wyświetlamy MessageBox z zdekodowanym tekstem.

Licencjonowanie (dostępna bezpłatna wersja próbna)

IronQR wymaga klucza licencyjnego. Klucz próbny można uzyskać z witryny tutaj. Ten klucz musi być umieszczony w appsettings.json.

{
    "IronQr.LicenseKey": "MYLICENSE.KEY.TRIAL"
}

Podaj identyfikator e-mail, aby otrzymać licencję próbną, a po przesłaniu klucz zostanie dostarczony e-mailem.

License Key

Wnioski

Podsumowując, kody QR przekroczyły swoje początki, aby stać się nieodzownymi w naszym ekosystemie cyfrowym. Dzięki IronQR, deweloperzy C# mogą wykorzystać moc rozpoznawania kodów QR, dekodować dane w różnych typach kodów QR z łatwością i wprowadzać innowacje w różnych dziedzinach.

W miarę jak kody QR nadal się rozwijają i integrowane są w nowych technologiach, ich znaczenie w ułatwianiu bezproblemowej wymiany danych i wzbogacaniu doświadczeń użytkowników będzie tylko rosło. Wykorzystaj potencjał kodów QR z IronQR i wyrusz w podróż innowacji i efektywności w tworzeniu C#.

Często Zadawane Pytania

Jak skonfigurować projekt w języku C# do odczytu kodów QR?

Aby skonfigurować projekt C# do odczytu kodów QR, zacznij od utworzenia nowej aplikacji Windows Forms w Visual Studio. Zainstaluj bibliotekę IronQR z menedżera pakietów NuGet i upewnij się, że masz bibliotekę AForge.Video.DirectShow do przechwytywania strumieni wideo z kamery.

Jakie są zalety korzystania z IronQR do odczytu kodów QR?

IronQR zapewnia solidne możliwości odczytu kodów QR dzięki wykorzystaniu zaawansowanych modeli uczenia maszynowego. Zapewnia dokładne dekodowanie nawet w trudnych warunkach i obsługuje różne frameworki .NET Framework oraz systemy operacyjne.

Jak odczytać kod QR za pomocą IronQR w aplikacji napisanej w języku C#?

Aby zdekodować kod QR w aplikacji C# za pomocą IronQR, należy przechwycić obraz z kamery za pomocą AForge, a następnie użyć biblioteki IronQR do przetworzenia i zdekodowania kodu QR z przechwyconego obrazu.

Czy IronQR może dekodować kody QR z transmisji wideo na żywo?

Tak, IronQR może dekodować kody QR z transmisji wideo na żywo dzięki integracji z biblioteką AForge.Video.DirectShow, która pozwala przechwytywać klatki i przetwarzać je w czasie rzeczywistym.

Jakie biblioteki są niezbędne do stworzenia czytnika kodów QR w języku C#?

Niezbędne biblioteki do tworzenia czytnika kodów QR w języku C# to biblioteka IronQR do dekodowania kodów QR oraz AForge.Video.DirectShow do przechwytywania strumieni wideo z kamery.

W jaki sposób IronQR zapewnia integralność danych podczas dekodowania kodów QR?

IronQR zwiększa bezpieczeństwo i zapewnia integralność danych poprzez dokładne rozróżnianie autentycznych kodów QR od potencjalnych zagrożeń, utrzymując w ten sposób wiarygodność dekodowanych informacji.

Czy za pomocą IronQR można skanować kody QR z obrazów?

Tak, IronQR może skanować kody QR nie tylko z transmisji na żywo, ale także ze statycznych obrazów, zapewniając elastyczność dostosowaną do różnych potrzeb aplikacji.

Jak uzyskać Licencję Trial na IronQR?

Na stronie internetowej Iron Software można uzyskać Licencję Trial na IronQR, która pozwala przetestować funkcje biblioteki poprzez umieszczenie klucza próbnego w pliku appsettings.json aplikacji.

Jaką rolę odgrywa komponent PictureBox w aplikacji do odczytu kodów QR?

W aplikacji do odczytu kodów QR komponent PictureBox wyświetla obraz na żywo z kamery, umożliwiając IronQR przechwytywanie i dekodowanie kodów QR z przychodzących klatek.

Jak mogę rozwiązać problemy z dekodowaniem kodów QR w języku C#?

Jeśli napotkasz problemy z dekodowaniem kodów QR, upewnij się, że biblioteka IronQR i biblioteka AForge są poprawnie zainstalowane, sprawdź, czy obraz z kamery jest prawidłowo zintegrowany, oraz upewnij się, że Twoja aplikacja poprawnie przechwytuje i przetwarza klatki wideo.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie