using IronBarCode;
using System.Drawing;
// Reading a barcode is easy with IronBarcode!
var resultFromFile = BarcodeReader.Read(@"file/barcode.png"); // From a file
var resultFromBitMap = BarcodeReader.Read(new Bitmap("barcode.bmp")); // From a bitmap
var resultFromImage = BarcodeReader.Read(Image.FromFile("barcode.jpg")); // From an image
var resultFromPdf = BarcodeReader.ReadPdf(@"file/mydocument.pdf"); // From PDF use ReadPdf
// To configure and fine-tune barcode reading, utilize the BarcodeReaderOptions class
var myOptionsExample = new BarcodeReaderOptions
{
// Choose a reading speed from: Faster, Balanced, Detailed, ExtremeDetail
// There is a tradeoff in performance as more detail is set
Speed = ReadingSpeed.Balanced,
// Reader will stop scanning once a single barcode is found (if set to true)
ExpectMultipleBarcodes = true,
// By default, all barcode formats are scanned for
// Specifying a subset of barcode types to search for would improve performance
ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
// Utilize multiple threads to read barcodes from multiple images in parallel
Multithreaded = true,
// Maximum threads for parallelized barcode reading
// Default is 4
MaxParallelThreads = 2,
// The area of each image frame in which to scan for barcodes
// Specifying a crop area will significantly improve performance and avoid noisy parts of the image
CropArea = new Rectangle(),
// Special setting for Code39 barcodes
// If a Code39 barcode is detected, try to read with both the base and extended ASCII character sets
UseCode39ExtendedMode = true
};
// Read with the options applied
var results = BarcodeReader.Read("barcode.png", myOptionsExample);
// Create a barcode with one line of code
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);
// After creating a barcode, we may choose to resize
myBarcode.ResizeTo(400, 100);
// Save our newly-created barcode as an image
myBarcode.SaveAsImage("EAN8.jpeg");
Image myBarcodeImage = myBarcode.Image; // Can be used as Image
Bitmap myBarcodeBitmap = myBarcode.ToBitmap(); // Can be used as Bitmap
Das Scannen von Barcodes ist eine wesentliche Funktion für viele Anwendungen, von der Bestandsverwaltung bis hin zu Einzelhandel und Logistik. Durch die Integration von Barcode-Lesefunktionen in Ihre .NET-Anwendungen können Sie die Datenerfassung optimieren, Arbeitsabläufe automatisieren und die Effizienz verbessern.
IronBarcode ist eine leistungsstarke .NET-Bibliothek, die die Arbeit mit Barcodes einfach macht. Mit diesem Werkzeug können Sie Barcodes aus Bildern, Streams und PDF-Dateien lesen sowie QR-Codes erzeugen. Dieser Artikel zeigt Ihnen, wie Sie das Barcode-Scannen in Ihre .NET-Anwendung integrieren, wobei der Schwerpunkt auf der Erstellung einer API- oder Web-App-Integration liegt, um die Barcode-Scanning-Funktionalität bereitzustellen.
Beste Anwendungsfälle für die Integration von IronBarcode
IronBarcode ist ideal für:
✔ Bestandsverwaltungssysteme – Automatisieren Sie das Barcode-Scannen, um Produkte und Lagerbestände zu verfolgen.
✔ Logistikanwendungen – Verarbeiten Sie gescannte Barcode-Bilder für Versand, Empfang und Paketverfolgung.
✔ Einzelhandels-POS-Systeme – Validieren Sie Barcode-Scans für Verkaufstransaktionen und Preisabfragen.
✔ Dokumentenverarbeitung – Barcode-Daten aus PDF-Rechnungen, Quittungen oder Ausweisen extrahieren.
Wie man ein Barcode-Reader-SDK in .NET erstellt
Um einen Barcode-Reader zu erstellen, der in Ihrer Anwendung als Dienst bereitgestellt werden kann, integrieren Sie IronBarcode in eine REST-API oder Web-App. Unten finden Sie ein Beispiel, wie dies mit ASP.NET Core gemacht wird.
Erstellen Sie eine wiederverwendbare Barcode-Scan-Klasse.
Entwickeln Sie Methoden zum Lesen von Barcodes aus verschiedenen Quellen.
Integrieren Sie das Lesen von Barcode-Bildern in Ihre Anwendung.
Testen und optimieren Sie die Leistung.
Bevor wir beginnen
Wenn Sie es noch nicht getan haben, laden Sie IronBarcode für Ihr Projekt herunter. Stellen Sie sicher, dass Sie den richtigen Lizenzschlüssel für Ihre beabsichtigte Nutzung haben. Bitte beachten Sie, dass die Bereitstellung der Funktionalität von IronBarcode über eine öffentliche API oder der Weiterverkauf als eigenständiger Dienst zusätzliche Lizenzen (SDK, OEM oder SaaS) erfordert. Stellen Sie sicher, dass Sie die Lizenzierungsbedingungen verstehen, bevor Sie fortfahren.
Erstellen einer Barcode-Scanner-Klasse
Sobald Sie IronBarcode eingerichtet und in Ihrem Projekt installiert haben, können Sie eine wiederverwendbare Barcode-Scanner-Klasse erstellen, die die Funktionalität von IronBarcode integriert und sie als API-Endpunkt bereitstellt.
using IronBarCode;
using System.IO;
namespace BarcodeIntegration
{
public class BarcodeScanner
{
static BarcodeScanner()
{
// Set the license key
IronBarCode.License.LicenseKey = "Your-License-Key";
}
// Read a barcode from an image file
public string ReadBarcodeFromImage(string imagePath)
{
try
{
var barcode = BarcodeReader.Read(imagePath);
return barcode?.ToString() ?? "No Barcode Found";
}
catch (Exception ex)
{
return $"Error reading barcode: {ex.Message}";
}
}
// Read a barcode from a stream (e.g., file upload or memory stream)
public string ReadBarcodeFromStream(Stream inputStream)
{
try
{
var barcode = BarcodeReader.Read(inputStream);
return barcode?.ToString() ?? "No barcode found";
}
catch (Exception ex)
{
return $"Error reading barcode: {ex.Message}";
}
}
// Read a barcode from a PDF file
public string ReadBarcodeFromPdf(string filePath)
{
try
{
var barcode = BarcodeReader.ReadPdf(filePath);
return barcode?.ToString() ?? "No barcode found";
}
catch (Exception ex)
{
return $"Error reading barcode: {ex.Message}";
}
}
}
}
using IronBarCode;
using System.IO;
namespace BarcodeIntegration
{
public class BarcodeScanner
{
static BarcodeScanner()
{
// Set the license key
IronBarCode.License.LicenseKey = "Your-License-Key";
}
// Read a barcode from an image file
public string ReadBarcodeFromImage(string imagePath)
{
try
{
var barcode = BarcodeReader.Read(imagePath);
return barcode?.ToString() ?? "No Barcode Found";
}
catch (Exception ex)
{
return $"Error reading barcode: {ex.Message}";
}
}
// Read a barcode from a stream (e.g., file upload or memory stream)
public string ReadBarcodeFromStream(Stream inputStream)
{
try
{
var barcode = BarcodeReader.Read(inputStream);
return barcode?.ToString() ?? "No barcode found";
}
catch (Exception ex)
{
return $"Error reading barcode: {ex.Message}";
}
}
// Read a barcode from a PDF file
public string ReadBarcodeFromPdf(string filePath)
{
try
{
var barcode = BarcodeReader.ReadPdf(filePath);
return barcode?.ToString() ?? "No barcode found";
}
catch (Exception ex)
{
return $"Error reading barcode: {ex.Message}";
}
}
}
}
Imports IronBarCode
Imports System.IO
Namespace BarcodeIntegration
Public Class BarcodeScanner
Shared Sub New()
' Set the license key
IronBarCode.License.LicenseKey = "Your-License-Key"
End Sub
' Read a barcode from an image file
Public Function ReadBarcodeFromImage(ByVal imagePath As String) As String
Try
Dim barcode = BarcodeReader.Read(imagePath)
Return If(barcode?.ToString(), "No Barcode Found")
Catch ex As Exception
Return $"Error reading barcode: {ex.Message}"
End Try
End Function
' Read a barcode from a stream (e.g., file upload or memory stream)
Public Function ReadBarcodeFromStream(ByVal inputStream As Stream) As String
Try
Dim barcode = BarcodeReader.Read(inputStream)
Return If(barcode?.ToString(), "No barcode found")
Catch ex As Exception
Return $"Error reading barcode: {ex.Message}"
End Try
End Function
' Read a barcode from a PDF file
Public Function ReadBarcodeFromPdf(ByVal filePath As String) As String
Try
Dim barcode = BarcodeReader.ReadPdf(filePath)
Return If(barcode?.ToString(), "No barcode found")
Catch ex As Exception
Return $"Error reading barcode: {ex.Message}"
End Try
End Function
End Class
End Namespace
$vbLabelText $csharpLabel
Diese BarcodeScanner-Klasse abstrahiert die Funktionalität von IronBarcode, sodass sie sich leicht in jede .NET-Anwendung integrieren lässt. Lassen Sie uns einen Überblick über die verschiedenen hier enthaltenen Methoden ansehen:
Möglichkeiten zum Lesen von Barcodes
Jede der folgenden Methoden versucht, einen Barcode aus verschiedenen Arten von Eingaben zu lesen:
ReadBarcodeFromImage(string imagePath): Liest einen Barcode aus einer Bilddatei aus.
ReadBarcodeFromStream(Stream inputStream): Liest einen Barcode aus einem Eingabestream (z.B. Datei-Upload oder Speicher-Stream).
ReadBarcodeFromPdf(string filePath): Liest einen Barcode aus einer PDF-Datei.
Jede Methode versucht, die Barcode-Daten zu lesen und gibt die Barcode-Zeichenfolge oder eine Fehlermeldung zurück, wenn kein Barcode gefunden wird oder eine Ausnahme auftritt.
Freigabe der Barcode-Erkennung über eine REST-API
Um externen Anwendungen die Nutzung Ihrer Barcode-Scan-Funktionalität zu ermöglichen, können Sie diese als REST-API mithilfe von ASP.NET Core bereitstellen. Nachfolgend finden Sie ein Beispiel dafür, wie Sie dies tun könnten:
using Microsoft.AspNetCore.Mvc;
using System.IO;
using Microsoft.AspNetCore.Http;
using BarcoderReader;
[ApiController]
[Route("api/barcode")]
public class BarcodeController : ControllerBase
{
private readonly BarcodeScanner _barcodeScanner;
public BarcodeController()
{
_barcodeScanner = new BarcodeScanner();
}
[HttpPost("read-from-image")]
public IActionResult ReadFromImage(IFormFile file)
{
using var stream = file.OpenReadStream();
var result = _barcodeScanner.ReadBarcodeFromStream(stream);
return Ok(new { Barcode = result });
}
}
using Microsoft.AspNetCore.Mvc;
using System.IO;
using Microsoft.AspNetCore.Http;
using BarcoderReader;
[ApiController]
[Route("api/barcode")]
public class BarcodeController : ControllerBase
{
private readonly BarcodeScanner _barcodeScanner;
public BarcodeController()
{
_barcodeScanner = new BarcodeScanner();
}
[HttpPost("read-from-image")]
public IActionResult ReadFromImage(IFormFile file)
{
using var stream = file.OpenReadStream();
var result = _barcodeScanner.ReadBarcodeFromStream(stream);
return Ok(new { Barcode = result });
}
}
Imports Microsoft.AspNetCore.Mvc
Imports System.IO
Imports Microsoft.AspNetCore.Http
Imports BarcoderReader
<ApiController>
<Route("api/barcode")>
Public Class BarcodeController
Inherits ControllerBase
Private ReadOnly _barcodeScanner As BarcodeScanner
Public Sub New()
_barcodeScanner = New BarcodeScanner()
End Sub
<HttpPost("read-from-image")>
Public Function ReadFromImage(ByVal file As IFormFile) As IActionResult
Dim stream = file.OpenReadStream()
Dim result = _barcodeScanner.ReadBarcodeFromStream(stream)
Return Ok(New With {Key .Barcode = result})
End Function
End Class
$vbLabelText $csharpLabel
Swagger UI
Von Pixabay hinzufügenHochladen
oder ein Bild hierher ziehen und ablegen
Alternativtext für Bild hinzufügen
Ausgabe
Von Pixabay hinzufügenHochladen
oder ein Bild hierher ziehen und ablegen
Alternativtext für Bild hinzufügen
Diese API stellt einen POST-Endpunkt zur Verfügung, an den Barcode-Bilder hochgeladen werden können, und die API wird die Barcode-Daten zurückgeben. Dies ermöglicht es anderen Systemen oder Frontend-Anwendungen, mit Ihrem Barcode-Scanner als Dienst zu interagieren.
Erweiterte Funktionen
Um das SDK weiter zu verbessern, erwägen Sie die Hinzufügung von:
Unterstützung für mehrere Barcode-Typen: IronBarcode unterstützt die Fähigkeit, mehrere Barcodes zu lesen. Sie können Optionen hinzufügen, um Ihr SDK so zu konfigurieren, dass es mehrere Barcodes gleichzeitig akzeptiert. Zum Beispiel:
Public Function ReadBarcodeFromImage(ByVal imagePath As String) As String
Try
Dim options As New BarcodeReaderOptions() With {
.ExpectMultipleBarcodes = True,
.ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional
}
For Each barcode In BarcodeReader.Read(imagePath, options)
Return barcode.ToString()
Next barcode
Return "No barcode found"
Catch ex As Exception
Return $"Error reading barcode: {ex.Message}"
End Try
End Function
$vbLabelText $csharpLabel
Fehlerbehandlung: Erweitern Sie die Fehlerbehandlung und das Logging, um Ihren SDK-Nutzern bessere Diagnosen zu ermöglichen.
Stapelverarbeitung: Wenn Sie mehrere Barcodes aus einer Sammlung von Bildern verarbeiten möchten, können Sie Methoden erstellen, die ein Array von Bildern oder Streams aufnehmen.
Anpassung: Bieten Sie Konfigurationsoptionen für Barcode-Erkennungsparameter wie Genauigkeit, Geschwindigkeit und unterstützte Barcode-Typen an.
Lizenzüberlegungen
Wie bereits erwähnt, ist das IronBarcode SDK zur Integration in Ihre internen Anwendungen gedacht, und die Bereitstellung über eine API erfordert eine zusätzliche Lizenzierung. Sie müssen die erforderliche Lizenzierung (SDK, OEM oder SaaS) sicherstellen, bevor Sie IronBarcode als Teil eines Dienstes, wie zum Beispiel einer öffentlichen API, bereitstellen.
Verkaufen Sie IronBarcode nicht als eigenständiges SDK weiter oder stellen Sie es über eine öffentlich zugängliche API bereit, ohne sicherzustellen, dass Ihre Lizenzierung diese Nutzung abdeckt.
Probieren Sie IronBarcode noch heute kostenlos aus
Erleben Sie die innovative Kraft von IronBarcode. Testen Sie unsere kostenlose Testversion und entdecken Sie nahtlose Barcode-Erstellung, -Lesung und -Bearbeitung für Ihre .NET-Anwendungen. Mit fortschrittlichen Funktionen, außergewöhnlicher Leistung und einer benutzerfreundlichen Oberfläche ist IronBarcode die ultimative Lösung für all Ihre Barcode-Bedürfnisse. Starten Sie noch heute Ihre kostenlose Testversion und heben Sie Ihre Projekte auf ein neues Niveau.
Jordi beherrscht vor allem Python, C# und C++. Wenn er seine Fähigkeiten bei Iron Software nicht einsetzt, programmiert er Spiele. Durch seine Mitverantwortung für Produkttests, Produktentwicklung und Forschung trägt Jordi wesentlich zur kontinuierlichen Produktverbesserung bei. Die vielseitigen Erfahrungen, die er sammelt, bieten ihm immer wieder neue Herausforderungen, und er sagt, dass dies einer seiner Lieblingsaspekte bei Iron Software ist. Jordi wuchs in Miami, Florida, auf und studierte Informatik und Statistik an der University of Florida.
NÄCHSTES > So lesen Sie mehrere Barcodes mit IronBarcode: Zusammenfassung der Live-Demo