Passer au contenu du pied de page
UTILISATION DE IRONBARCODE

Scanner de codes-barres MAUI avec IronBarcode: Guide étape par étape

Les applications mobiles s'appuient de plus en plus sur la lecture des codes-barres pour la gestion des stocks, les systèmes de point de vente et le suivi des produits. Créer un scanner de codes-barres MAUI vous permet d'intégrer la détection des codes-barres directement dans votre application .NET MAUI, en combinant un flux de caméra avec le traitement des fichiers image pour détecter les codes QR, les matrices de données et d'autres formats de codes-barres. Alors que de nombreuses bibliothèques se concentrent sur la prévisualisation par caméra, IronBarcode excelle dans la lecture précise des codes-barres, même dans des conditions difficiles : angles obliques, faible éclairage et étiquettes endommagées, le tout sans configuration supplémentaire.

Ce guide décrit en détail chaque étape de la mise en œuvre de la lecture de codes-barres dans un projet .NET MAUI à l'aide IronBarcode. À la fin de cette formation, vous serez capable de scanner plusieurs codes-barres à partir d'un seul fichier image, de capturer des codes-barres à partir de l'appareil photo d'un appareil et d'intégrer en toute confiance la bibliothèque à vos propres projets multiplateformes.

Quelles sont les conditions préalables à la construction d'un lecteur de codes-barres MAUI ?

Avant de commencer, assurez-vous que votre environnement de développement est correctement configuré :

  • Visual Studio 2022 (version 17.8 ou ultérieure) avec la charge de travail .NET MAUI installée
  • Kit de développement logiciel (SDK) .NET 10 : à télécharger sur le site officiel de .NET
  • Connaissances de base en C# ; la familiarité avec les modèles async/await sera un atout.
  • Dispositif physique ou émulateur configuré pour les tests de caméra Licence IronBarcode : une version d'essai gratuite est disponible pour évaluation.

S'assurer que Visual Studio dispose de la charge de travail MAUI installée avant de créer votre projet permet de gagner un temps précieux lors du dépannage ultérieur. Vous pouvez le vérifier dans le programme d'installation de Visual Studio, sous " Composants individuels ", en recherchant " Développement d'interface utilisateur d'application multiplateforme .NET ".

Comprendre comment IronBarcode s'intègre à MAUI

.NET MAUI vous offre une base de code unique ciblant Android, iOS, macOS et Windows. Le problème avec la lecture des codes-barres dans cet environnement, c'est que chaque plateforme gère l'accès à la caméra différemment. IronBarcode résout ce problème en travaillant au niveau du traitement d'image : vous capturez l'image via MAUI's MediaPicker, puis vous transmettez les octets à IronBarcode pour analyse.

Cette séparation des responsabilités permet de garder votre code propre et d'éviter les kits de développement logiciel (SDK) de codes-barres spécifiques à chaque plateforme. Le modèle de traitement hors ligne d'IronBarcode signifie également que les données des codes-barres ne quittent jamais l'appareil, ce qui est important pour les applications dans les secteurs réglementés.

Formats de Code-barres Supportés

IronBarcode lit un large éventail de formats , notamment :

Formats de codes-barres pris en charge par IronBarcode
Catégorie de format Formats Cas d'utilisation courants
1D linéaire Code 128, Code 39, EAN-13, UPC-A, ITF Commerce de détail, logistique, santé
Matrice 2D Code QR, Data Matrix, Aztèque, PDF417 paiements mobiles, billetterie, fabrication
Postal USPS, Royal Mail, Deutsche Post Services d'expédition et postaux
Spécialité MaxiCode, GS1, MicroPDF417 chaîne d'approvisionnement, transport, colis

Comment configurer un projet de lecture de codes-barres MAUI ?

Commencez par créer un nouveau projet d'application .NET MAUI dans Visual Studio 2022. Nommez-le BarcodeScannerApp et sélectionnez .NET 10 comme framework cible. Visual Studio génère la structure de projet MAUI standard avec des dossiers spécifiques à chaque plateforme : Android, iOS, macOS et Windows.

Installation IronBarcode via NuGet

Ouvrez la console du gestionnaire de packages NuGet et exécutez :

Install-Package BarCode

Vous pouvez également cliquer avec le bouton droit sur votre projet dans l'Explorateur de solutions, choisir " Gérer les packages NuGet ", rechercher IronBarCode et installer la dernière version stable. Pour les projets .NET MAUI en particulier , le package NuGet d'IronBarcode inclut toutes les dépendances natives nécessaires.

Activation de votre licence

Après l'installation, activez IronBarcode avec votre clé de licence dès le début du cycle de vie de l'application. Le meilleur endroit est MauiProgram.cs avant l'exécution du Builder d'applications :

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
$vbLabelText   $csharpLabel

Obtenez une clé de licence d'essai gratuite sur le site web d'IronSoftware. Les clés d'essai vous permettent d'évaluer toutes les fonctionnalités sans limite de temps pendant le développement, mais les fichiers produits peuvent comporter un filigrane d'essai jusqu'à l'application d'une licence complète.

Comment configurer les autorisations d'accès à la caméra sur Android et iOS ?

Les autorisations de caméra spécifiques à la plateforme sont essentielles pour la fonctionnalité de numérisation des codes-barres. Chaque plateforme nécessite une configuration spécifique dans ses fichiers manifestes avant que MediaPicker.CapturePhotoAsync() ne réussisse.

Autorisations Android

Modifier Platforms/Android/AndroidManifest.xml pour déclarer l'accès à la caméra :

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.autofocus" />
XML

L'entrée android.permission.CAMERA demande l'autorisation d'exécution de l'utilisateur. Les déclarations uses-feature informent le Google Play Store que votre application nécessite un matériel de caméra et une capacité d'autofocus. Sans ces autorisations, les appareils Android peuvent accepter la demande d'autorisation tout en bloquant l'accès à la caméra en interne.

Pour Android 13 et versions ultérieures (niveau d'API 33+), vous devrez peut-être également gérer des autorisations multimédias granulaires dans votre MainActivity.cs en utilisant ActivityCompat.RequestPermissions. L'abstraction MAUI MediaPicker gère la plupart de ces opérations automatiquement, mais des tests sur un appareil physique sont recommandés avant la publication.

Autorisations iOS

Modifiez Platforms/iOS/Info.plist pour inclure la description de l'utilisation de la caméra :

<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>
XML

iOS exige une explication compréhensible par un humain pour chaque autorisation sensible en matière de confidentialité. Le processus d'examen de l'App Store d'Apple rejettera votre application si cette description est manquante ou vague. Ce texte apparaît dans la boîte de dialogue d'autorisation système affichée à l'utilisateur la première fois que l'application demande l'accès à la caméra.

Pour iPadOS, pensez également à ajouter NSPhotoLibraryUsageDescription si vous prévoyez de permettre aux utilisateurs de scanner les codes-barres des photos enregistrées en plus de l'appareil photo en direct.

Windows et macOS

Pour les systèmes d'exploitation Windows Desktop et macOS, les autorisations d'accès à la caméra sont gérées respectivement via le fichier manifeste de l'application et les fichiers d'autorisation. Le framework MAUI gère la plupart de ces éléments au niveau du modèle, mais vérifiez que Package.appxmanifest sur Windows inclut la capacité du périphérique webcam.

Comment créer l'interface du lecteur de codes-barres ?

Concevoir une interface utilisateur dans MainPage.xaml qui donne aux utilisateurs un retour d'information clair pendant le processus de numérisation. Une interface minimaliste mais fonctionnelle comprend un aperçu de l'image, une zone d'affichage des résultats et un bouton de déclenchement de la numérisation :

<?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"
             Title="Barcode Scanner">
    <VerticalStackLayout Padding="20" Spacing="20">
        <Label Text="Point the camera at a barcode"
               FontSize="16"
               HorizontalOptions="Center"
               TextColor="#555555" />
        <Image x:Name="CapturedImage"
               HeightRequest="300"
               Aspect="AspectFit"
               BackgroundColor="#F0F0F0" />
        <Label x:Name="ResultLabel"
               Text="Tap Scan to begin"
               FontSize="18"
               HorizontalOptions="Center"
               FontAttributes="Bold" />
        <Label x:Name="FormatLabel"
               Text=""
               FontSize="13"
               HorizontalOptions="Center"
               TextColor="#888888" />
        <Button Text="Scan Barcode"
                Clicked="OnScanClicked"
                BackgroundColor="#007ACC"
                TextColor="White"
                CornerRadius="8"
                HeightRequest="50" />
        <Button Text="Load from Gallery"
                Clicked="OnPickFromGalleryClicked"
                BackgroundColor="#5C5C5C"
                TextColor="White"
                CornerRadius="8"
                HeightRequest="50" />
    </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"
             Title="Barcode Scanner">
    <VerticalStackLayout Padding="20" Spacing="20">
        <Label Text="Point the camera at a barcode"
               FontSize="16"
               HorizontalOptions="Center"
               TextColor="#555555" />
        <Image x:Name="CapturedImage"
               HeightRequest="300"
               Aspect="AspectFit"
               BackgroundColor="#F0F0F0" />
        <Label x:Name="ResultLabel"
               Text="Tap Scan to begin"
               FontSize="18"
               HorizontalOptions="Center"
               FontAttributes="Bold" />
        <Label x:Name="FormatLabel"
               Text=""
               FontSize="13"
               HorizontalOptions="Center"
               TextColor="#888888" />
        <Button Text="Scan Barcode"
                Clicked="OnScanClicked"
                BackgroundColor="#007ACC"
                TextColor="White"
                CornerRadius="8"
                HeightRequest="50" />
        <Button Text="Load from Gallery"
                Clicked="OnPickFromGalleryClicked"
                BackgroundColor="#5C5C5C"
                TextColor="White"
                CornerRadius="8"
                HeightRequest="50" />
    </VerticalStackLayout>
</ContentPage>
XML

La mise en page propose deux modes de numérisation : la prise d'une nouvelle photo avec l'appareil photo et la sélection d'une image existante dans la galerie. Cela a son importance pour les flux de travail où les utilisateurs photographient les codes-barres à l'avance ou reçoivent des images par e-mail. Le FormatLabel affiche le format du code-barres détecté ainsi que la valeur décodée, ce qui est utile lors du débogage et de la vérification par l'utilisateur.

Ajout de commentaires sur l'état de l'analyse

Pour une expérience plus soignée, pensez à envelopper les boutons de numérisation dans un ActivityIndicator qui s'affiche pendant le traitement. L'API asynchrone d'IronBarcode simplifie cela : vous pouvez définir IsRunning = true avant d'appeler BarcodeReader.ReadAsync et le réinitialiser dans le bloc finally.

Comment implémenter la fonctionnalité de lecteur de codes-barres ?

Implémentez la logique de balayage de base dans MainPage.xaml.cs. Le code ci-dessous gère à la fois la capture par la caméra et la sélection dans la galerie, avec des modèles asynchrones et une gestion des erreurs appropriés :

using IronBarCode;
using IronSoftware.Drawing;

namespace BarcodeScannerApp;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    private async void OnScanClicked(object sender, EventArgs e)
    {
        await ScanFromSource(() => MediaPicker.Default.CapturePhotoAsync());
    }

    private async void OnPickFromGalleryClicked(object sender, EventArgs e)
    {
        await ScanFromSource(() => MediaPicker.Default.PickPhotoAsync());
    }

    private async Task ScanFromSource(Func<Task<FileResult?>> sourceFunc)
    {
        try
        {
            var photo = await sourceFunc();
            if (photo is null) return;

            using var stream = await photo.OpenReadAsync();
            using var memoryStream = new MemoryStream();
            await stream.CopyToAsync(memoryStream);
            var imageBytes = memoryStream.ToArray();

            // Show the captured image in the UI
            CapturedImage.Source = ImageSource.FromStream(() =>
                new MemoryStream(imageBytes));

            // Process with IronBarcode
            var bitmap = AnyBitmap.FromBytes(imageBytes);
            var options = new BarcodeReaderOptions
            {
                Speed = ReadingSpeed.Balanced,
                ExpectMultipleBarcodes = false
            };

            var results = await BarcodeReader.ReadAsync(bitmap, options);

            if (results.Any())
            {
                var first = results.First();
                ResultLabel.Text = $"Value: {first.Value}";
                FormatLabel.Text = $"Format: {first.BarcodeType}";
            }
            else
            {
                ResultLabel.Text = "No barcode detected";
                FormatLabel.Text = string.Empty;
            }
        }
        catch (FeatureNotSupportedException)
        {
            await DisplayAlert("Unsupported",
                "Camera is not available on this device.", "OK");
        }
        catch (PermissionException)
        {
            await DisplayAlert("Permission Required",
                "Please grant camera permission in Settings.", "OK");
        }
        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();
    }

    private async void OnScanClicked(object sender, EventArgs e)
    {
        await ScanFromSource(() => MediaPicker.Default.CapturePhotoAsync());
    }

    private async void OnPickFromGalleryClicked(object sender, EventArgs e)
    {
        await ScanFromSource(() => MediaPicker.Default.PickPhotoAsync());
    }

    private async Task ScanFromSource(Func<Task<FileResult?>> sourceFunc)
    {
        try
        {
            var photo = await sourceFunc();
            if (photo is null) return;

            using var stream = await photo.OpenReadAsync();
            using var memoryStream = new MemoryStream();
            await stream.CopyToAsync(memoryStream);
            var imageBytes = memoryStream.ToArray();

            // Show the captured image in the UI
            CapturedImage.Source = ImageSource.FromStream(() =>
                new MemoryStream(imageBytes));

            // Process with IronBarcode
            var bitmap = AnyBitmap.FromBytes(imageBytes);
            var options = new BarcodeReaderOptions
            {
                Speed = ReadingSpeed.Balanced,
                ExpectMultipleBarcodes = false
            };

            var results = await BarcodeReader.ReadAsync(bitmap, options);

            if (results.Any())
            {
                var first = results.First();
                ResultLabel.Text = $"Value: {first.Value}";
                FormatLabel.Text = $"Format: {first.BarcodeType}";
            }
            else
            {
                ResultLabel.Text = "No barcode detected";
                FormatLabel.Text = string.Empty;
            }
        }
        catch (FeatureNotSupportedException)
        {
            await DisplayAlert("Unsupported",
                "Camera is not available on this device.", "OK");
        }
        catch (PermissionException)
        {
            await DisplayAlert("Permission Required",
                "Please grant camera permission in Settings.", "OK");
        }
        catch (Exception ex)
        {
            await DisplayAlert("Error",
                $"Scanning failed: {ex.Message}", "OK");
        }
    }
}
$vbLabelText   $csharpLabel

Cette implémentation utilise une méthode d'assistance partagée ScanFromSource pour éviter de dupliquer la logique de traitement d'image entre les chemins de la caméra et de la galerie. La méthode AnyBitmap.FromBytes gère automatiquement les formats d'image JPEG, PNG, WebP et autres formats courants ; aucune détection manuelle du format n'est requise.

L'objet de résultat expose first.Value (la chaîne décodée), first.BarcodeType (l'énumération de format) et first.BarcodeImage (une image recadrée de la région du code-barres détectée) parmi d'autres propriétés. Consultez la documentation de la classe BarcodeResult pour obtenir la liste complète.

Test de votre implémentation de numérisation

Une fois le code en place, vous pouvez effectuer un test par rapport à un code-barres standard :

Comment créer un lecteur de codes-barres MAUI avec IronBarcode: Figure 2 - Saisie d'un code-barres de test

Après la numérisation, la valeur décodée apparaît à l'écran :

Comment créer un lecteur de codes-barres MAUI avec IronBarcode: Figure 3 - Valeur du code-barres scanné

Comment configurer les options de numérisation avancées ?

IronBarcode expose un objet BarcodeReaderOptions qui vous permet d'affiner le comportement de détection pour votre cas d'utilisation spécifique. Comprendre ces options vous aide à trouver le juste équilibre entre vitesse et précision en fonction des besoins de votre application.

Ciblage de types de codes-barres spécifiques

Spécifier précisément les types de codes-barres attendus réduit considérablement le temps de traitement, car IronBarcode ignore les vérifications de format inutiles :

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128
};

var results = await BarcodeReader.ReadAsync(bitmap, options);
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128
};

var results = await BarcodeReader.ReadAsync(bitmap, options);
$vbLabelText   $csharpLabel

Comment créer un lecteur de codes-barres MAUI avec IronBarcode: Figure 4 - Lecture de plusieurs codes à partir d'une même image

Le paramétrage ExpectMultipleBarcodes = true indique à IronBarcode de continuer la numérisation après avoir trouvé le premier résultat, ce qui est essentiel pour les flux de travail d'entrepôt où un seul bordereau d'emballage peut contenir une douzaine de codes-barres.

Options de vitesse de lecture

L'énumération ReadingSpeed offre quatre niveaux : ExtremeDetail, Detailed, Balanced et QuickScan. Utilisez QuickScan pour les scénarios à volume élevé où les codes-barres sont propres et bien éclairés. Passez à Detailed ou ExtremeDetail lors de la numérisation à partir de captures d'appareil photo à basse résolution ou d'étiquettes partiellement endommagées.

Pour en savoir plus sur le réglage de BarcodeReaderOptions , notamment les filtres de correction d'image et les seuils de confiance, la documentation fournit des exemples détaillés.

Correction et prétraitement d'images

IronBarcode intègre une correction d'image qui gère automatiquement les codes-barres pivotés, déformés ou mal éclairés. Vous pouvez également appliquer manuellement des filtres de prétraitement via BarcodeReaderOptions.ImageFilters :

var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed,
    ImageFilters = new ImageFilterCollection
    {
        new SharpenFilter(),
        new ContrastFilter(1.2f)
    }
};
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Detailed,
    ImageFilters = new ImageFilterCollection
    {
        new SharpenFilter(),
        new ContrastFilter(1.2f)
    }
};
$vbLabelText   $csharpLabel

Les filtres de prétraitement sont particulièrement utiles lorsque l'application cible des appareils Android plus anciens dotés de capteurs photo de moindre qualité, ou lorsque les utilisateurs sont susceptibles de photographier des codes-barres dans des conditions d'éclairage sous-optimales, comme dans des entrepôts ou en extérieur.

Comment gérez-vous les scénarios de dépannage courants ?

Même avec un lecteur de codes-barres MAUI bien configuré, des problèmes peuvent survenir en raison du comportement spécifique de l'appareil, de problèmes de qualité d'image ou de contraintes de la plateforme.

L'appareil photo ne s'ouvre pas.

Si la caméra ne se lance pas, vérifiez que les autorisations sont correctement déclarées dans AndroidManifest.xml et Info.plist. Redéployez ensuite l'application à partir d'une version propre plutôt que d'un rechargement à chaud. Sur Android, vérifiez également si votre appareil de test utilise une configuration de caméra non standard ; certains appareils dotés de plusieurs caméras nécessitent une sélection explicite de l'objectif.

Sur le simulateur, MediaPicker.CapturePhotoAsync() n'est pas pris en charge. Testez toujours les fonctionnalités de l'appareil photo sur un appareil physique. L'émulateur prend en charge la sélection dans la galerie (voir PickPhotoAsync), ce qui vous permet d'effectuer des tests d'interface utilisateur basiques avec des images préchargées.

Précision de numérisation médiocre

Si IronBarcode ne renvoie aucun résultat ou des valeurs incorrectes, essayez les ajustements suivants :

  • Augmentez la valeur de Speed à ReadingSpeed.Detailed ou ExtremeDetail
  • Ajouter SharpenFilter et ContrastFilter au pipeline de filtrage d'images
  • Assurez-vous que la résolution de l'image capturée est d'au moins 720p ; les résolutions inférieures peuvent entraîner des détections manquées avec des formats denses comme Data Matrix.
  • Vérifiez si le type de code-barres est inclus dans votre masque ExpectBarcodeTypes

Le guide de dépannage IronBarcode couvre des étapes de diagnostic supplémentaires pour les problèmes spécifiques au format.

Gestion de la mémoire

Les images volumineuses de la caméra consomment une quantité importante de mémoire lorsqu'elles sont chargées dans MemoryStream. Utilisez toujours les instructions using sur tous les objets de flux pour garantir leur suppression. Pour les flux de travail de numérisation continue où les utilisateurs numérisent plusieurs éléments en séquence, appelez également bitmap.Dispose() explicitement après le traitement plutôt que d'attendre le ramasse-miettes.

Sur les appareils Android disposant d'un espace mémoire limité, envisagez de sous-échantillonner l'image avant de la transmettre à IronBarcode si les scans concernent des codes-barres nets et à contraste élevé qui ne nécessitent pas une résolution maximale pour être décodés avec précision.

Comportement spécifique à la plateforme iOS

Sur iOS, lors de la première demande d'autorisation d'accès à la caméra par votre application, le système affiche une boîte de dialogue unique. Si l'utilisateur le nie, les appels suivants à CapturePhotoAsync généreront un PermissionException. Traitez ce cas en dirigeant l'utilisateur vers les Paramètres, ce que vous pouvez faire avec AppInfo.ShowSettingsUI().

Veuillez vérifier que NSCameraUsageDescription est présent dans Info.plist avant de soumettre l'application à l'App Store. L'absence de chaînes de confidentialité entraîne un rejet automatique sans explication détaillée de la part de l'équipe d'examen. Consultez les directives d'Apple relatives à l'interface utilisateur pour connaître les bonnes pratiques en matière de demande d'autorisation, de délai et de messages.

Quelles sont vos prochaines étapes ?

Maintenant que vous disposez d'un lecteur de codes-barres MAUI fonctionnel avec IronBarcode, plusieurs options s'offrent à vous en fonction des exigences de votre application :

  • Générer des codes-barres : IronBarcode inclut une API de génération de codes-barres permettant de créer des codes QR, des étiquettes Code 128 et d'autres formats à partir de données de type chaîne de caractères.
  • Numérisation par lots -- traiter plusieurs fichiers image en boucle en utilisant BarcodeReader.ReadAsync avec ExpectMultipleBarcodes = true; voir des exemples de numérisation par lots
  • Extraction de codes-barres PDF -- IronBarcode peut lire les codes-barres intégrés dans les documents PDF en utilisant la même classe BarcodeReader ; Explorez la documentation sur la lecture des codes-barres PDF
  • Style et image de marque -- personnalisez l'apparence visuelle des codes-barres générés avec des couleurs, des logos et des annotations ; voir les options de style de code-barres
  • Autres produits IronSoftware : si votre application MAUI nécessite également la génération de PDF, la reconnaissance optique de caractères (OCR) ou la prise en charge des tableurs, découvrez la Iron Suite complète pour des fonctionnalités multiplateformes cohérentes.

Commencez par une licence d'essai gratuite pour déployer votre solution sans restrictions pendant votre période d'évaluation. Pour connaître les options de licences de production et les tarifs de volume, consultez la page de tarification IronBarcode . Le portail de documentation IronBarcode et le dépôt GitHub IronBarcode fournissent des exemples de code supplémentaires et un soutien communautaire.

Questions Fréquemment Posées

Quel est l'avantage d'utiliser IronBarcode pour un scanner de code-barres MAUI?

IronBarcode traite les codes-barres au niveau de l'image, fonctionne hors ligne, prend en charge plus de 30 formats et gère les conditions difficiles telles que les angles obliques et un faible éclairage sans configuration supplémentaire.

IronBarcode peut-il détecter plusieurs codes-barres dans une seule image ?

Oui. Définissez ExpectMultipleBarcodes = true dans BarcodeReaderOptions et appelez BarcodeReader.ReadAsync. IronBarcode renverra tous les codes-barres détectés dans la collection de résultats.

Comment configurer les autorisations d'accès à la caméra pour Android et iOS dans MAUI ?

Pour Android, ajoutez les éléments CAMERA uses-permission et uses-feature au fichier AndroidManifest.xml. Pour iOS, ajoutez NSCameraUsageDescription avec une description lisible par l'utilisateur au fichier Info.plist.

IronBarcode prend-il en charge la lecture de codes-barres hors ligne ?

Oui. IronBarcode traite les images intégralement sur l'appareil sans envoyer de données à des serveurs externes, ce qui est important pour les applications sensibles à la confidentialité.

Quels formats de codes-barres IronBarcode prend-il en charge dans MAUI ?

IronBarcode prend en charge les codes QR, Code 128, Code 39, EAN-13, UPC-A, Data Matrix, PDF417, Aztec, MaxiCode et bien d'autres. Vous pouvez cibler des formats spécifiques grâce aux options d'encodage de codes-barres.

Comment améliorer la précision de la numérisation d'images de mauvaise qualité ?

Réglez la vitesse de lecture sur Détaillé ou Détail extrême, ajoutez SharpenFilter et ContrastFilter aux filtres d'image et assurez-vous que l'image capturée a une résolution d'au moins 720p.

IronBarcode peut-il lire les codes-barres des fichiers PDF dans une application MAUI ?

Oui. La classe BarcodeReader d'IronBarcode peut extraire les codes-barres intégrés dans les documents PDF en utilisant la même API ReadAsync que celle utilisée pour les fichiers image.

Comment gérer une exception PermissionException lorsque l'accès à la caméra est refusé ?

Interceptez l'exception PermissionException dans un bloc try/catch et appelez AppInfo.ShowSettingsUI() pour rediriger l'utilisateur vers les paramètres de son appareil où il pourra réactiver l'accès à la caméra.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi