IRONSOFTWAREHOME
IRONBARCODE VERWENDEN

Erstellen eines Barcode-Scanners mit Webcam in C#

Curtis Chau
Curtis Chau
Updated: 28. Juni 2026

Ein Barcode-Scanner, der Webcams in C# nutzt, macht physische Barcode-Scanner überflüssig, indem er jede angeschlossene Kamera in einen leistungsstarken Barcode-Leser verwandelt. In diesem Artikel zeigen wir Ihnen Schritt für Schritt, wie Sie mit nur wenigen Codezeilen einen konsolenbasierten Webcam-Barcodescanner erstellen, der Live-Videobilder erfasst und Barcodes sowie QR-Codes in Echtzeit dekodiert.

Egal, ob Sie ein Inventarsystem prototypisch entwickeln, einen Check-in-Kiosk bauen oder einfach nur neugierig sind, wie das Scannen von Barcodes unter der Haube funktioniert – dieser Leitfaden liefert Ihnen sofort einsatzbereiten Quellcode.

Erster Schritt:
arrow pointer

Kann eine Webcam einen dedizierten Barcode-Scanner ersetzen?

Absolut. Jede handelsübliche Webcam oder jedes USB-Videoaufnahmegerät, das an einen Windows-, macOS- oder Linux-Rechner angeschlossen ist, kann in Verbindung mit der richtigen Software als Barcode-Scanner dienen. Das Verfahren funktioniert, indem Videobilder von der Kamera erfasst, jedes Bild in ein Bitmap-Bild umgewandelt und dieses Bild dann zur Dekodierung an eine Barcode-Lesebibliothek übergeben wird.

Bei herkömmlichen Barcode-Scanning-Systemen mit Tools wie dem Dynamsoft Barcode Reader SDK oder DirectShow .NET ist es oft notwendig, manuell einen Filtergraphen zu konfigurieren, einen Aufnahmegraphen einzurichten und eine Frame-Callback-Pipeline zu erstellen, nur um Frames von der Kamera zu erhalten. IronBarcode vereinfacht dies drastisch, es ist nicht nötig, eine komplexe Videostream-Infrastruktur aufzubauen. Sie liefern die Bilddaten, und die BarcodeReader-Klasse kümmert sich um den Rest und unterstützt alles von Standard-Barcodes bis hin zu QR-Codes mit einer einzigen Lesemethode .

Wie richte ich die Kamera ein und installiere die erforderlichen Abhängigkeiten?

Um Videobilder von einer Webcam in eine .NET Konsolenanwendung einzulesen, wird eine Kamerazugriffsbibliothek benötigt. OpenCvSharp4 ist ein leichtgewichtiger, plattformübergreifender .NET Wrapper für OpenCV, der dies unkompliziert macht. In Kombination mit IronBarcode erhalten Sie alles, was Sie benötigen, um einen Echtzeit-Barcodescanner zu erstellen, ohne sich mit der Aufzählung von Videoaufnahmegeräten auf niedriger Ebene oder der Konfiguration der Bildrate auseinandersetzen zu müssen.

Installieren Sie beide Pakete über NuGet:

dotnet add package OpenCvSharp4.Windows, OpenCvSharp4.Extensions, BarCode

Mit der Installation dieser drei Pakete erhält Ihr Projekt Zugriff auf die Kamera über OpenCvSharp und Barcode-Dekodierung über IronBarcode. Es sind keine zusätzlichen Systemabhängigkeiten oder externen SDKs zu konfigurieren, einfach installieren und loslegen.

Wie nimmt man Video-Frames auf und liest Barcodedaten in Echtzeit?

Das folgende Codebeispiel erstellt einen konsolenbasierten Barcode-Scanner in Visual Studio, der Ihre Standard-Webcam öffnet, kontinuierlich Frames aufnimmt und jeden Frame nach Barcodes durchsucht. Wird ein Barcode erkannt, werden die Daten in die Konsole geschrieben und das Bild als Momentaufnahme gespeichert.

using OpenCvSharp;
using OpenCvSharp.Extensions;
using IronBarCode;
using IronSoftware.Drawing;
// Open the default camera (device index 0)
using var capture = new VideoCapture(0);
if (!capture.IsOpened())
{
    Console.WriteLine("No camera found. Check connected devices.");
    return;
}
// Configure the barcode reader for real-time scanning
var options = new BarcodeReaderOptions
{
    ExpectMultipleBarcodes = false,
    ExpectBarcodeTypes = BarcodeEncoding.All,
    Speed = ReadingSpeed.Faster
};
Console.WriteLine("Barcode scanner active. Press 'Q' to quit.");
using var frame = new Mat();
bool scanning = true;
while (scanning)
{
    capture.Read(frame);
    if (frame.Empty())
        continue;
    // Convert the captured frame to a bitmap for barcode processing
    var bitmap = BitmapConverter.ToBitmap(frame);
    var anyBitmap = new AnyBitmap(bitmap);
    // Scan the frame for barcodes
    var results = BarcodeReader.Read(anyBitmap, options);
    foreach (var result in results)
    {
        Console.WriteLine($"Barcode detected: {result.Value}");
        Console.WriteLine($"  Format: {result.BarcodeType}");
        // Save a snapshot of the frame where the barcode was found
        bitmap.Save("barcode_snapshot.png");
        Console.WriteLine("  Snapshot saved to barcode_snapshot.png");
    }
    // Check for quit key
    if (Cv2.WaitKey(1) == 'q')
        scanning = false;
}
Console.WriteLine("Scanner stopped.");

Using Webcam for Barcode Scanning in C#

Erstellen Sie einen Barcode-Scanner mit Webcam in C#: Bild 1 - Verwenden Sie unseren Barcode-Scanner mit Webcam in C#

Dieser Code verwendet Anweisungen auf oberster Ebene, um den Code übersichtlich zu halten. Das VideoCapture-Objekt öffnet die erste angeschlossene Kameraquelle und beginnt, in einer Schleife Einzelbilder aufzunehmen. Jedes Einzelbild wird von einer OpenCvSharp-Mat in eine Bitmap konvertiert und anschließend in ein AnyBitmap-Objekt verpackt, dem plattformübergreifenden Bildformat, das die BarcodeReader.Read-Methode von IronBarcode akzeptiert.

Das BarcodeReaderOptions-Objekt steuert das Scanverhalten. Die Einstellung "Geschwindigkeit" auf "ReadingSpeed.Faster" optimiert für Echtzeitvideos, bei denen schnelle Reaktionen pro Frame erforderlich sind. Die Eigenschaft ExpectBarcodeTypes ist auf BarcodeEncoding.All gesetzt, was bedeutet, dass der Scanner alle unterstützten Formate erkennt, von Code 128 und EAN-13 bis hin zu Data Matrix und QR-Codes. Wenn Ihr Anwendungsfall nur ein bestimmtes Format umfasst, steigert eine Eingrenzung die Scanleistung. Weitere Informationen zur Konfiguration dieser Optionen finden Sie in der Referenz zu BarcodeReaderOptions .

Die foreach-Schleife durchläuft jedes BarcodeResult in der zurückgegebenen Sammlung. Die Eigenschaft "Value" enthält die dekodierten Barcode-Daten, während "BarcodeType" das Format angibt. Die Methode gibt eine BarcodeResults-Sammlung zurück, wodurch die Verarbeitung mehrerer Barcodes bei Bedarf vereinfacht wird.

Wie lässt sich der Barcode-Leser für verschiedene Anwendungsfälle optimal einstellen?

Beim Scannen von Barcodes in der Praxis herrschen oft unvollkommene Bedingungen, schlechte Lichtverhältnisse, schräge Winkel oder beschädigte Etiketten. Die Lesegeräteoptionen von IronBarcode ermöglichen es Ihnen, Geschwindigkeit und Genauigkeit je nach Art des zu verarbeitenden Objekts in Einklang zu bringen.

using IronBarCode;
// Optimized options for scanning QR codes from a camera feed
var qrOptions = new BarcodeReaderOptions
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.PDF417,
    Speed = ReadingSpeed.Detailed,
    AutoRotate = true
};
// Decode barcodes from a saved image captured by the webcam
var imageResults = BarcodeReader.Read("barcode_snapshot.png", qrOptions);
foreach (var barcode in imageResults)
{
    Console.WriteLine($"Data: {barcode.Value}");
    Console.WriteLine($"Type: {barcode.BarcodeType}");
    Console.WriteLine($"Page: {barcode.PageNumber}");
}

Ausgabe beim Lesen verschiedener Barcodes: Beispiel mit QR-Code

Erstellen Sie einen Barcode-Scanner mit Webcam in C#: Bild 2 - QR-Code mit unserem Barcode-Scanner lesen

Durch Umschalten der Geschwindigkeit auf ReadingSpeed.Detailed wird dem Decoder mitgeteilt, dass er eine gründlichere Bildanalyse durchführen soll, was ideal für die Verarbeitung verrauschter oder verzerrter Eingangsdaten ist. Durch Aktivieren der automatischen Drehung kann IronBarcode gedrehte Barcodes im Bild automatisch korrigieren. Dies ist ein häufiges Szenario, wenn Benutzer Gegenstände in ungewöhnlichen Winkeln vor die Kamera halten. Dies ist einer der Bereiche, in denen IronBarcode als QR-Code-Bibliothek und Barcode-Lesegerät wirklich heraussticht: Die integrierte Bildvorverarbeitung bewältigt diese Herausforderungen, ohne dass Sie externe Bildkorrekturfilter anschließen müssen.

Mit der BarcodeReader-API können Sie auch Barcodes aus gespeicherten Bilddateien , PDFs und TIFFs mit mehreren Einzelbildern scannen, wodurch sie weit über die Anwendung mit Webcams hinaus vielseitig einsetzbar ist. Falls Sie stattdessen einen webbasierten Scanner entwickeln, beschreibt der IronBarcode Blazor Integrationsleitfaden das Scannen mit der Webcam über einen Browser mithilfe von JavaScript Interop.

Warum ist dieser Ansatz einfacher als Alternativen?

Viele Tutorials zum Scannen von Barcodes über Webcams in C# setzen auf die Kombination mehrerer Bibliotheken, typischerweise ZXing .NET zum Dekodieren in Verbindung mit AForge .NET oder DirectShow .NET für den Kamerazugriff. Dieser Ansatz erfordert die Einrichtung eines Filtergraphen für die Videoaufnahme, die manuelle Konfiguration von Frame-Callbacks zur Extraktion von Frames aus dem Videostream und die Geräteaufzählung über Low-Level-Windows-APIs. Das Dynamsoft Barcode Reader SDK folgt einem ähnlichen Muster und benötigt DirectShow .NET -Infrastruktur für den Zugriff auf die Webcam.

IronBarcode durchbricht diese Komplexität. Die Logik zum Scannen von Barcodes befindet sich vollständig in BarcodeReader.Read, das eine Bitmap, ein Byte-Array, einen Dateipfad oder einen Stream akzeptiert. Es muss kein Erfassungsdiagramm erstellt werden, es gibt keinen Objektsender und keine EventArgs-Ereignisverdrahtung für die Frame-Erfassung, man übergibt einfach die Bilddaten und erhält die Barcode-Informationen zurück. Das bedeutet weniger Code zu schreiben, weniger Abhängigkeiten zu pflegen und mehr Zeit für die Funktionen, die in Ihrer Anwendung wirklich wichtig sind.

Für Teams, die mit .NET Core, .NET Framework oder .NET 8+ arbeiten, bietet IronBarcode konsistente plattformübergreifende Unterstützung für Windows, macOS, Linux, Docker, Azure und AWS. Entdecken Sie den vollen Funktionsumfang oder sehen Sie sich weitere Codebeispiele an, um zu sehen, was sonst noch möglich ist.

Bereit, Ihren eigenen Barcode-Scanner zu bauen?

Mit den richtigen Werkzeugen lässt sich eine Webcam in einen Barcode-Scanner in C# verwandeln. Dafür ist nur minimaler Code erforderlich. IronBarcode übernimmt die aufwendige Dekodierung, von Standard-Barcodes bis hin zu QR-Codes, während OpenCvSharp den Kamerazugriff sauber verwaltet. Zusammen ergeben sie einen Scanner, der einfach zu bauen, leicht zu erweitern und produktionsreif ist.

Starten Sie eine kostenlose Testphase , um es mit Ihrem eigenen Projekt auszuprobieren, oder informieren Sie sich über die Lizenzoptionen, wenn Sie bereit für die Veröffentlichung sind.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
AWS-Logo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Azure (WebApps, Funktionen v3)
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Azure (WebApps, Funktionen v3)
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.