Zum Fußzeileninhalt springen
IRONBARCODE VERWENDEN

C# QR-Code-Leser (Schritt-für-Schritt-Tutorial für Anfänger)

In der heutigen digital getriebenen Welt sind QR-Codes (Quick Response Codes) allgegenwärtig geworden und verbinden nahtlos physische und digitale Bereiche. Von Marketing bis Logistik, Finanzwesen bis Gesundheitswesen spielen QR-Codes eine entscheidende Rolle bei der effizienten Datenübertragung.

In diesem Artikel tauchen wir in die Welt der C#-Entwicklung ein und untersuchen, wie IronQR, eine der besten QR-Code-Bibliotheken auf dem Markt, Entwicklern hilft, die Leistungsfähigkeit der QR-Code-Erkennung zu nutzen, Daten mühelos zu dekodieren und in verschiedenen Bereichen zu innovieren.

IronQR von Iron Software sticht als robuste .NET QR-Code-Leserbibliothek hervor. Das von IronQR implementierte fortschrittliche maschinelle Lernmodell befähigt Ihre Anwendungen, QR-Codes mit unübertroffener Genauigkeit und Effizienz zu dekodieren, selbst in schwierigen Szenarien.

Wie man QR-Codes mit C# und IronQR liest

  1. Erstellen Sie ein Visual Studio-Projekt mit einer .NET Windows Forms Application-Vorlage.
  2. Install IronQR from the NuGet package manager.
  3. Holen Sie den QR-Code von der Kamera als Bild mit der AForge-Bibliothek.
  4. Lesen Sie QR-Codes mit IronQR.

IronQR sticht als die führende C#-QR-Code-Leserbibliothek hervor, die entwickelt wurde, um innerhalb des .NET-Frameworks sowohl QR-Code-Bilder zu scannen als auch zu generieren. Durch die Nutzung modernster ML-Technologie hat IronQR das QR-Code-Lesen auf beispiellose Ebenen gehoben.

Egal, ob Sie QR-Codes aus Bildern, Videos oder Live-Kamera-Feeds scannen, die ML-basierte Lösung garantiert eine schnelle und zuverlässige Informationsgewinnung.

Dieser innovative Ansatz vereinfacht nicht nur die Datenextraktion, sondern erhöht auch die Sicherheit, indem zwischen authentischen QR-Codes und potenziellen Bedrohungen unterschieden wird. Mit seiner intuitiven API können Entwickler QR-Code-Funktionen in wenigen Minuten nahtlos in ihre .NET-Projekte integrieren.

IronQR integriert sich nahtlos mit .NET Core (8, 7, 6, 5 und 3.1+), .NET Standard (2.0+) und .NET Framework (4.6.2+). Die aktuelle .NET Core-Version erweitert ihre Unterstützung auf Client-Betriebssysteme wie Linux, Unix und macOS sowie die Kompatibilität zur Entwicklung von mobilen Apps.

Voraussetzungen

  1. Visual Studio: Stellen Sie sicher, dass Visual Studio oder eine andere .NET-Entwicklungsumgebung installiert ist.
  2. Kompatible Kamera: Stellen Sie sicher, dass die Kamera mit Ihrem Gerät verbunden ist.
  3. NuGet-Paketmanager: Überprüfen Sie, ob Sie NuGet verwenden können, um Pakete in Ihrem Projekt zu verwalten.

Schritt 1: Erstellen Sie ein Visual Studio-Projekt mit einer .NET Windows Forms Application-Vorlage

Lassen Sie uns beginnen, indem wir eine Windows Forms .NET-Anwendung erstellen, um QR-Code-Barcodes von Kamera-Video-Streams oder Bilddateien zu lesen. Öffnen Sie Visual Studio, wählen Sie Neues Projekt erstellen und wählen Sie dann die .NET Windows Forms Application-Vorlage aus.

Visual Studio Setup

Klicken Sie auf Weiter und geben Sie den Projektnamen ein.

Projektbenennung

Wählen Sie die gewünschten .NET-Versionen aus und klicken Sie dann auf die Schaltfläche Erstellen.

Projekt erstellen

Schritt 2: Installieren Sie IronQR aus dem NuGet-Paketmanager

IronQR can be installed using the NuGet Paketmanager oder den Visual Studio Paketmanager installiert werden.

NuGet-Installation

Unten wird gezeigt, wie man dies mit Visual Studio macht.

Visual Studio NuGet

Schritt 3: Holen Sie den QR-Code von der Kamera als Bild mit der AForge-Bibliothek

Um QR-Codes von Kamerageräten zu scannen, müssen wir die Bibliothek AForge.Video.DirectShow installieren. Dies kann mit dem Visual Studio Paketmanager erledigt werden. Klicken Sie mit der rechten Maustaste auf den Solution Explorer und öffnen Sie den Paketmanager.

AForge Installation Schritt 1

Diese Bibliothek kann auch mit der NuGet Paketkonsole wie unten gezeigt installiert werden. Klicken Sie auf die Installationsschaltfläche, um die Bibliothek zu installieren.

AForge Installation Schritt 2

Schritt 4: Lesen Sie QR-Codes mit IronQR

Der nächste Schritt besteht darin, eine PictureBox-Komponente im Form zu erstellen, die erforderlich ist, um das QR-Code-Bild vom Kameragerät zu scannen, das mit der Maschine verbunden ist.

Dies kann durch Drag-and-Drop aus der Toolbox erfolgen. Diese PictureBox ist erforderlich, um die QR-Code-Daten vom Kameragerät zu lesen.

PictureBox hinzufügen

Ziehen Sie als Nächstes ein Textfeld, um die gelesenen QR-Codes anzuzeigen.

TextBox hinzufügen

Fügen Sie den unten stehenden Code hinzu, um QR-Codes zu lesen und zu dekodieren, indem Sie IronQR verwenden.

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

Eingabebilddatei

Der codierte Text im QR-Code lautet: I Love IronQR

QR-Code Beispiel

Ausgabe

QR-Code Ergebnis

Erklärung des Beispielcodes

  1. Wir haben zwei Ereignisse in Windows Forms registriert: Form1_Load und Form1_FormClosing.
  2. Wir haben außerdem VideoSource_NewFrame zu einer Instanz von videoSource aus der AForge.Video.DirectShow Bibliothek registriert.
  3. Wir lesen die QR-Codes aus dem Live-Video-Stream.
  4. Wenn ein QR-Code erkannt wird, zeigen wir eine MessageBox mit dem dekodierten Text an.

Lizenzierung (Kostenlose Testversion verfügbar)

IronQR benötigt einen Lizenzschlüssel. Ein Testschlüssel kann hier auf der Website erhalten werden. Dieser Schlüssel muss in appsettings.json platziert werden.

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

Geben Sie die E-Mail-ID ein, um eine Testlizenz zu erhalten, und nach dem Absenden wird der Schlüssel per E-Mail zugestellt.

Lizenzschlüssel

Abschluss

Abschließend haben sich QR-Codes über ihren Ursprung hinaus entwickelt und sind in unserem digitalen Ökosystem unverzichtbar geworden. Mit IronQR können C#-Entwickler die Kraft der QR-Code-Erkennung nutzen, Daten in verschiedenen Arten von QR-Codes mühelos dekodieren und in verschiedenen Bereichen innovativ sein.

Da sich QR-Codes weiterentwickeln und in neue Technologien integrieren, wird ihre Bedeutung bei der Ermöglichung nahtlosen Datenaustauschs und der Verbesserung von Benutzererlebnissen nur wachsen. Nutzen Sie das Potenzial von QR-Codes mit IronQR und begeben Sie sich auf eine Reise der Innovation und Effizienz in der C#-Entwicklung.

Häufig gestellte Fragen

Wie kann ich ein C#-Projekt einrichten, um QR-Codes zu lesen?

Um ein C#-Projekt zum Lesen von QR-Codes einzurichten, beginnen Sie mit der Erstellung einer neuen Windows Forms-Anwendung in Visual Studio. Installieren Sie die IronQR-Bibliothek aus dem NuGet-Paketmanager und stellen Sie sicher, dass Sie die AForge.Video.DirectShow-Bibliothek haben, um Videostreams von einer Kamera zu erfassen.

Was sind die Vorteile der Verwendung von IronQR zum Lesen von QR-Codes?

IronQR bietet robuste Möglichkeiten zum Lesen von QR-Codes durch den Einsatz fortschrittlicher maschineller Lernmodelle. Es stellt sicher, dass unter schwierigen Bedingungen genau dekodiert wird und unterstützt verschiedene .NET-Frameworks und Betriebssysteme.

Wie dekodiere ich einen QR-Code mit IronQR in einer C#-Anwendung?

Um einen QR-Code in einer C#-Anwendung mit IronQR zu dekodieren, erfassen Sie ein Bild vom Kamerasignal mit AForge und verwenden Sie dann die IronQR-Bibliothek, um den QR-Code aus dem erfassten Bild zu verarbeiten und zu dekodieren.

Kann IronQR QR-Codes von Live-Videostreams dekodieren?

Ja, IronQR kann QR-Codes von Live-Videostreams dekodieren, indem es mit der AForge.Video.DirectShow-Bibliothek integriert wird, um Frames zu erfassen und sie in Echtzeit zu verarbeiten.

Welche Bibliotheken sind essentiell für den Aufbau eines QR-Code-Lesegeräts in C#?

Die essentiellen Bibliotheken für den Aufbau eines QR-Code-Lesegeräts in C# sind IronQR zum Dekodieren der QR-Codes und AForge.Video.DirectShow zum Erfassen von Videostreams von der Kamera.

Wie stellt IronQR die Datenintegrität beim Dekodieren von QR-Codes sicher?

IronQR erhöht die Sicherheit und stellt die Datenintegrität sicher, indem es authentische QR-Codes genau von potenziellen Bedrohungen unterscheidet, wodurch die Zuverlässigkeit der dekodierten Informationen gewahrt bleibt.

Ist es möglich, QR-Codes aus Bildern mit IronQR zu scannen?

Ja, IronQR kann QR-Codes nicht nur aus Live-Streams, sondern auch aus statischen Bildern scannen, was Flexibilität für verschiedene Anwendungsanforderungen bietet.

Wie erhalte ich eine Testlizenz für IronQR?

Sie können eine Testlizenz für IronQR von der Iron Software-Website erhalten, die es Ihnen ermöglicht, die Funktionen der Bibliothek zu testen, indem Sie den Testschlüssel in Ihrer Anwendungsdatei appsettings.json platzieren.

Welche Rolle spielt das PictureBox-Element in einer QR-Code-Leseanwendung?

In einer QR-Code-Leseanwendung zeigt das PictureBox-Element den Live-Videostream von der Kamera an, sodass IronQR QR-Codes aus den eingehenden Frames erfassen und dekodieren kann.

Wie kann ich Probleme mit der QR-Code-Dekodierung in C# beheben?

Wenn Sie Probleme bei der Dekodierung von QR-Codes haben, stellen Sie sicher, dass die IronQR- und AForge-Bibliotheken korrekt installiert sind, überprüfen Sie, ob der Kamerastream ordnungsgemäß integriert ist, und verifizieren Sie, dass Ihre Anwendung Videoframes korrekt erfasst und verarbeitet.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen