Zum Fußzeileninhalt springen
IRONBARCODE VERWENDEN

Wie man einen MAUI Barcode Scanner mit IronBarcode erstellt

Moderne mobile Anwendungen verlassen sich zunehmend auf das Scannen von Barcodes für Bestandsverwaltung, Kassensysteme und Produktverfolgung. Der Aufbau eines MAUI-Barcodescanners ermöglicht es Ihnen, die Barcode-Erkennung direkt in Ihre .NET MAUI-Anwendung zu integrieren, indem ein Kamerafeed mit der Bilddateiverarbeitung kombiniert wird, um QR-Codes, Data Matrix und andere Barcode-Formate zu erkennen. Während sich viele Bibliotheken auf die Kamera-Vorschau konzentrieren, ist IronBarcode darauf spezialisiert, Barcodes genau zu lesen und selbst unter schwierigen Bedingungen zu scannen.

In diesem Leitfaden zeige ich Ihnen, wie Sie die Funktionalität des Scannens von Barcodes in einem .NET MAUI-Projekt mit IronBarcode implementieren können. Am Ende werden Sie in der Lage sein, mehrere Barcodes in einer Bilddatei oder von der Kamera eines Geräts zu scannen, Daten aus einem beliebigen Barcode zu lesen und IronBarcode sicher in Ihren eigenen MAUI-Projekten zu verwenden.

Was sind die Voraussetzungen für den Aufbau eines MAUI-Barcodescanners?

Stellen Sie vor dem Beginn sicher, dass Visual Studio Code oder Visual Studio 2022 installiert ist, zusammen mit dem .NET MAUI-Arbeitslast, und Sie über Grundkenntnisse in C# verfügen. Sie benötigen auch das .NET 8 SDK für optimale Leistung und Unterstützung für plattformübergreifende Anwendungen.

Wie richte ich ein MAUI-Barcodescanner-Projekt ein?

Erstellen Sie ein neues .NET MAUI-App-Projekt in Visual Studio 2022. Nennen Sie es "BarcodeScannerApp" und wählen Sie .NET 8 als Ziel-Framework.

Installieren Sie IronBarcode über die NuGet-Paket-Manager-Konsole:

Install-Package BarCode

Dies installiert eine .NET-Bibliothek mit Unterstützung für mehrere Barcode-Formate, einschließlich QR-Code, Code 128 und Data Matrix. IronBarcode funktioniert offline und verarbeitet nativ nicht unterstützte invertierte Barcodes, um stetiges Scannen und bessere Konsistenz zu gewährleisten.

Um IronBarcode zu aktivieren, erhalten Sie eine kostenlose Testlizenz und fügen sie Ihrem Code hinzu:

License.LicenseKey = "YOUR-LICENSE-KEY";
License.LicenseKey = "YOUR-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Wie konfiguriere ich Kameraberechtigungen für Android und iOS?

Plattformspezifische Kameraberechtigungen sind für die Funktionalität des Scannens von Barcodes unerlässlich. Jede Plattform erfordert eine spezifische Konfiguration in ihren Manifestdateien.

Für Android bearbeiten Sie Platforms/Android/AndroidManifest.xml:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Diese Berechtigungen ermöglichen den Kamerazugriff und deklarieren die Verwendung der Kamerahardware, um sicherzustellen, dass Ihre App Barcode-Bilder auf Android-Geräten erfassen kann.

Für iOS ändern Sie Platforms/iOS/Info.plist:

<key>NSCameraUsageDescription</key>
<string>This app requires camera access to scan barcodes</string>
<key>NSCameraUsageDescription</key>
<string>This app requires camera access to scan barcodes</string>
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Diese Konfiguration bietet die erforderliche Datenschutzbeschreibung, die iOS beim Anfordern der Kameraberechtigung von Benutzern anzeigt.

Wie erstelle ich die Barcodescanner-Oberfläche?

Designen Sie eine einfache, benutzerfreundliche Oberfläche in MainPage.xaml:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="BarcodeScannerApp.MainPage">
    <VerticalStackLayout Padding="20" Spacing="20">
        <Label Text="Barcode Scanner" 
               FontSize="24" 
               HorizontalOptions="Center" />
        <Image x:Name="CapturedImage" 
               HeightRequest="300"
               Aspect="AspectFit" />
        <Label x:Name="ResultLabel" 
               Text="Tap button to scan"
               HorizontalOptions="Center" />
        <Button Text="Scan Barcode" 
                Clicked="OnScanClicked"
                BackgroundColor="#007ACC"
                TextColor="White" />
    </VerticalStackLayout>
</ContentPage>
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="BarcodeScannerApp.MainPage">
    <VerticalStackLayout Padding="20" Spacing="20">
        <Label Text="Barcode Scanner" 
               FontSize="24" 
               HorizontalOptions="Center" />
        <Image x:Name="CapturedImage" 
               HeightRequest="300"
               Aspect="AspectFit" />
        <Label x:Name="ResultLabel" 
               Text="Tap button to scan"
               HorizontalOptions="Center" />
        <Button Text="Scan Barcode" 
                Clicked="OnScanClicked"
                BackgroundColor="#007ACC"
                TextColor="White" />
    </VerticalStackLayout>
</ContentPage>
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieses Layout erstellt eine saubere Oberfläche mit einem Bildvorschau-Bereich, einem Ergebnisanzeige-Label und einem Scan-Button. Das VerticalStackLayout bietet konsistente Abstände und Randabstände für ein professionelles Erscheinungsbild.

Wie implementiere ich die Funktionalität des Barcode-Lesers?

Implementieren Sie die Scanning-Logik in MainPage.xaml.cs mit den Bildverarbeitungsfähigkeiten von IronBarcode:

using IronBarCode;
using IronSoftware.Drawing;
namespace BarcodeScannerApp;
public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
        License.LicenseKey = "YOUR-LICENSE-KEY";
    }
    private async void OnScanClicked(object sender, EventArgs e)
    {
        try
        {
            // Capture photo using device camera
            var photo = await MediaPicker.Default.CapturePhotoAsync();
            if (photo == null) return;
            // Convert photo to byte array
            using var stream = await photo.OpenReadAsync();
            using var memoryStream = new MemoryStream();
            await stream.CopyToAsync(memoryStream);
            var imageBytes = memoryStream.ToArray();
            // Display captured image
            CapturedImage.Source = ImageSource.FromStream(() => 
                new MemoryStream(imageBytes));
            // Process with IronBarcode
            var bitmap = AnyBitmap.FromBytes(imageBytes);
            var results = await BarcodeReader.ReadAsync(bitmap);
            // Display results
            if (results.Any())
            {
                var barcodeValue = results.First().Value;
                ResultLabel.Text = $"Scanned: {barcodeValue}";
            }
            else
            {
                ResultLabel.Text = "No barcode detected";
            }
        }
        catch (Exception ex)
        {
            await DisplayAlert("Error", 
                $"Scanning failed: {ex.Message}", "OK");
        }
    }
}
using IronBarCode;
using IronSoftware.Drawing;
namespace BarcodeScannerApp;
public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
        License.LicenseKey = "YOUR-LICENSE-KEY";
    }
    private async void OnScanClicked(object sender, EventArgs e)
    {
        try
        {
            // Capture photo using device camera
            var photo = await MediaPicker.Default.CapturePhotoAsync();
            if (photo == null) return;
            // Convert photo to byte array
            using var stream = await photo.OpenReadAsync();
            using var memoryStream = new MemoryStream();
            await stream.CopyToAsync(memoryStream);
            var imageBytes = memoryStream.ToArray();
            // Display captured image
            CapturedImage.Source = ImageSource.FromStream(() => 
                new MemoryStream(imageBytes));
            // Process with IronBarcode
            var bitmap = AnyBitmap.FromBytes(imageBytes);
            var results = await BarcodeReader.ReadAsync(bitmap);
            // Display results
            if (results.Any())
            {
                var barcodeValue = results.First().Value;
                ResultLabel.Text = $"Scanned: {barcodeValue}";
            }
            else
            {
                ResultLabel.Text = "No barcode detected";
            }
        }
        catch (Exception ex)
        {
            await DisplayAlert("Error", 
                $"Scanning failed: {ex.Message}", "OK");
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Diese Implementierung erfasst ein Bild über MediaPicker, konvertiert es in ein Byte-Array zur Verarbeitung und verwendet die BarcodeReader.ReadAsync-Methode von IronBarcode zur Erkennung. Die AnyBitmap.FromBytes-Methode verarbeitet verschiedene Bildformate automatisch. Eine Fehlerbehandlung sorgt für eine elegante Fehlerwiederherstellung mit benutzerfreundlichen Nachrichten.

Mit diesem Code können wir diesen Barcode scannen:

Wie man einen MAUI-Barcodescanner mit IronBarcode erstellt: Abbildung 2 - Eingabetest-Barcode

Und Sie sollten in der Lage sein, die Daten des Barcodes auf dem Bildschirm zu sehen:

Wie man einen MAUI-Barcodescanner mit IronBarcode erstellt: Abbildung 3 - Gescannter Barcode-Wert

Welche erweiterten Funktionen bietet IronBarcode?

IronBarcode bietet mehrere erweiterte Funktionen, die die Zuverlässigkeit des Scannens verbessern. Die maschinellen Lernalgorithmen der Bibliothek passen die Vertrauensschwellen automatisch an und verbessern die Genauigkeit bei schwierigen Barcodes. Bildkorrekturfilter verarbeiten gedrehte, geneigte oder schlecht beleuchtete Barcodes ohne zusätzliche Konfiguration.

Für spezifische Anforderungen an das Scannen passen Sie die Leseoptionen an:

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128
};
var results = await BarcodeReader.ReadAsync(bitmap, opcanbvations);
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128
};
var results = await BarcodeReader.ReadAsync(bitmap, opcanbvations);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Diese Konfiguration optimiert das Scannen für bestimmte Barcode-Typen und ermöglicht die Erkennung mehrerer Barcodes in einem einzigen Bild, wodurch die Verarbeitungszeit verkürzt wird, während die Genauigkeit beibehalten wird.

Wie man einen MAUI-Barcodescanner mit IronBarcode erstellt: Abbildung 4 - Mehrere Codes aus demselben Bild gescannt

Häufige Problemlösungstipps

Selbst mit einem robusten MAUI-Barcodescanner-Setup können gelegentlich Probleme aufgrund von Geräteeinstellungen, Bildqualität oder plattformspezifischen Einschränkungen auftreten. Die folgenden Tipps beheben die häufigsten Probleme, die bei der Implementierung von Barcode-Scan-Funktionen in einer .NET MAUI-Anwendung auftreten:

  • Kamera öffnet sich nicht: Stellen Sie sicher, dass die folgenden Berechtigungen im Manifestknoten korrekt festgelegt sind, und stellen Sie die App neu bereit. Überprüfen Sie außerdem für unterstützte Multi-Kamera-Setups, wenn Sie auf Geräten mit mehreren Kameras oder benutzerdefinierten Kamerakonfigurationen testen.
  • Schlechte Scan-Ergebnisse: Passen Sie die Bildauflösung oder Beleuchtung an oder wenden Sie Transformationen auf den Barcode an. Darüber hinaus kann das Aktivieren des kontinuierlichen Scannens und das Erhöhen der Geschwindigkeitsoption in BarcodeReaderOptions die Konsistenz des Scannens verbessern.
  • Speicherprobleme: Entsorgen Sie Bildströme ordnungsgemäß mit Using-Anweisungen. Dies stellt sicher, dass die Barcode-Scan-Funktionalität reaktionsschnell bleibt und unerwartete Abstürze oder Verzögerungen auf Android-Geräten oder Microsoft Windows-Maschinen verhindert.
  • iOS-Probleme: Bestätigen Sie, dass Info.plist die richtigen QR-Code-Bindungswerte enthält. Tests auf sowohl iPhone- als auch iPad-Geräten werden empfohlen, um eine konsistente Barcode-Scan-Funktionalität auf iOS-Geräten sicherzustellen.

Abschluss

IronBarcode revolutioniert das MAUI-Barcodescannen mit seiner robusten Bildverarbeitungs-Engine und seinen maschinellen Lernfähigkeiten. Im Gegensatz zu Echtzeit-Kamera-Vorschau-Bibliotheken sorgt der Ansatz von IronBarcode für zuverlässiges Scannen selbst unter schwierigen Bedingungen. Die Offline-Funktionalität der Bibliothek und die umfangreiche Formatunterstützung machen sie ideal für Unternehmensanwendungen. Jetzt können Sie sicher das Gelernte nutzen, um Ihren eigenen .NET MAUI-Barcodescanner zu erstellen. Möchten Sie mehr erfahren? Lesen Sie unbedingt die umfangreiche Dokumentation von IronBarcode.

Beginnen Sie die Entwicklung mit einer kostenlosen Testversion für die Produktionseinführung. Die Kombination aus Genauigkeit, einfacher Implementierung und umfassenden Funktionen von IronBarcode macht es zur optimalen Wahl für MAUI-Barcodescanner-Anwendungen.

Häufig gestellte Fragen

Was ist der Vorteil von IronBarcode für einen MAUI-Barcodescanner?

IronBarcode zeichnet sich durch die genaue Erkennung von Barcodes aus, selbst unter schwierigen Bedingungen, was es ideal für die Integration in MAUI-Anwendungen macht.

Kann IronBarcode mehrere Barcodeformate in einer MAUI-Anwendung verarbeiten?

Ja, IronBarcode kann verschiedene Barcodeformate, einschließlich QR-Codes und Data Matrix, erkennen und ist damit vielseitig für unterschiedliche Anwendungsbedürfnisse.

Wie integriert sich IronBarcode in den Kamerafeed in einem MAUI-Barcodescanner?

IronBarcode ermöglicht nahtlose Integration mit dem Kamerafeed, sodass Echtzeit-Barcodedetektion und -verarbeitung direkt in MAUI-Anwendungen möglich ist.

Unterstützt IronBarcode offline Barcodescannen in MAUI-Anwendungen?

Ja, IronBarcode unterstützt offline Barcodescanning, wodurch es ohne Internetverbindung funktionieren kann, was für mobile Anwendungen von Vorteil ist.

Was sind die Hauptmerkmale von IronBarcode für das Barcodescannen in MAUI?

Hauptmerkmale sind die genaue Barcodeerkennung, Unterstützung für verschiedene Barcodeformate und robuste Leistung, sogar unter schwierigen Bedingungen.

Wie geht IronBarcode mit schwierigen Scansituationen um?

IronBarcode ist darauf ausgelegt, Barcodes unter herausfordernden Bedingungen wie schlechten Lichtverhältnissen oder schiefen Winkeln genau zu lesen und so eine zuverlässige Leistung zu gewährleisten.

Ist es einfach, Barcodescanning-Berechtigungen mit IronBarcode in MAUI einzurichten?

Ja, IronBarcode bietet klare Anleitungen zur Einrichtung der erforderlichen Berechtigungen für das Barcodescannen und macht die Implementierung in MAUI unkompliziert.

Kann IronBarcode für Bestandsverwaltungssysteme in MAUI verwendet werden?

Absolut, IronBarcode eignet sich hervorragend für Bestandsverwaltung, bietet effiziente Barcodescanning-Funktionen, die in MAUI-Anwendungen integriert werden können.

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