Comment corriger l'orientation du code-barres en C# | IronBarcode

Comment corriger l'orientation d'un BarCode en C#35;

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronBarcode corrige automatiquement l'orientation des codes-barres grâce à sa fonction AutoRotate intégrée, qui détecte et lit les codes-barres à n'importe quel angle sans rotation manuelle de l'image, garantissant ainsi une lecture précise des codes-barres, même à partir d'images inclinées ou pivotées.

L'orientation d'un code-barres fait référence à l'angle auquel un code-barres est imprimé ou affiché sur un produit ou un document. Elle peut être ajustée à divers angles pour répondre à différentes exigences de mise en page et de conception. L'orientation la plus courante est horizontale, où le code-barres est aligné de gauche à droite, ce qui est le format standard le plus largement utilisé. Tout degré d'orientation non nul pose un défi pour les bibliothèques pour détecter et récupérer la valeur. IronBarcode offre une correction automatique de l'orientation pour détecter toute orientation non nulle pour les codes-barres et les codes QR.

<TODO : Ajouter une image ici -->

<Description : Diagramme montrant différents angles d'orientation des codes-barres (0°, 20°, 45°, 90°) et la façon dont AutoRotate gère chaque cas -->

en-tête:2(Guide rapide: Correction de l'image en rotation automatique en une ligne)

Voici comment corriger facilement l'orientation : une ligne de code utilisant l'option AutoRotate d'IronBarcode - activée par défaut - pour lire les codes-barres avec précision même lorsque les images sont tournées.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronBarcode avec le gestionnaire de packages NuGet

    PM > Install-Package BarCode

  2. Copiez et exécutez cet extrait de code.

    var result = IronBarCode.BarcodeReader.Read("rotatedImage.png", new IronBarCode.BarcodeReaderOptions { AutoRotate = true });
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronBarcode dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer

Comment réparer l'orientation des BarCodes dans mon application?

Pour appliquer une correction automatique de l'orientation, définissez la propriété AutoRotate dans BarcodeReaderOptions sur true. Cette propriété est définie sur true par défaut, donc vous ne devriez rien avoir à faire. La lecture de toute image de code-barres orientée non nulle devrait fonctionner immédiatement.

La fonction AutoRotate est particulièrement utile lorsque vous travaillez avec différents formats de codes-barres, notamment les codes QR, Data Matrix et les codes-barres linéaires traditionnels. Qu'il s'agisse de lire des codes-barres à partir d'images ou de numériser à partir de documents PDF, la correction de l'orientation garantit des résultats fiables.

Utilisons l'image ci-dessous comme notre échantillon. Download the following 20° rotation and 45° rotation sample images.

Barcode rotated 20 degrees clockwise showing vertical stripes at an angle for orientation testing
Barcode rotated 45 degrees showing diagonal orientation requiring correction

Quel code dois-je utiliser pour mettre en œuvre AutoRotate?

:path=/static-assets/barcode/content-code-examples/how-to/image-orientation-correct-autorotate.cs
using IronBarCode;
using System;

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    // Turn on auto rotation in ML detection
    AutoRotate = true,
};

var results = BarcodeReader.Read("rotate20.png", myOptionsExample);

// Print out the value
Console.WriteLine(results[0].Value);
Imports IronBarCode
Imports System

Private myOptionsExample As New BarcodeReaderOptions() With {.AutoRotate = True}

Private results = BarcodeReader.Read("rotate20.png", myOptionsExample)

' Print out the value
Console.WriteLine(results(0).Value)
$vbLabelText   $csharpLabel

La fonctionnalité AutoRotate s'appuie sur des algorithmes avancés d'apprentissage automatique pour détecter automatiquement l'orientation du code-barres. Cela s'avère particulièrement utile lorsqu'il s'agit de multiples codes-barres dans une seule image ou lorsqu'il s'agit de traiter des lots d'images avec des orientations variables.

Travailler avec différents angles de rotation

La correction d'orientation d'IronBarcode gère divers angles de rotation de manière transparente. Voici un exemple qui démontre la lecture de codes-barres à différents angles de rotation :

using IronBarCode;
using System;
using System.Collections.Generic;

// Process multiple rotated images
var rotatedImages = new List<string> { "rotate20.png", "rotate45.png", "rotate90.png" };
var options = new BarcodeReaderOptions
{
    AutoRotate = true,
    // Combine with other reading optimizations
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = false
};

foreach (var imagePath in rotatedImages)
{
    var results = BarcodeReader.Read(imagePath, options);
    if (results.Length > 0)
    {
        Console.WriteLine($"Image: {imagePath} - Barcode Value: {results[0].Value}");
        Console.WriteLine($"Barcode Type: {results[0].BarcodeType}");
        Console.WriteLine($"Rotation Applied: {results[0].WasRotated}");
    }
}
using IronBarCode;
using System;
using System.Collections.Generic;

// Process multiple rotated images
var rotatedImages = new List<string> { "rotate20.png", "rotate45.png", "rotate90.png" };
var options = new BarcodeReaderOptions
{
    AutoRotate = true,
    // Combine with other reading optimizations
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = false
};

foreach (var imagePath in rotatedImages)
{
    var results = BarcodeReader.Read(imagePath, options);
    if (results.Length > 0)
    {
        Console.WriteLine($"Image: {imagePath} - Barcode Value: {results[0].Value}");
        Console.WriteLine($"Barcode Type: {results[0].BarcodeType}");
        Console.WriteLine($"Rotation Applied: {results[0].WasRotated}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Considérations de performance

Bien que AutoRotate soit activé par défaut, comprendre ses implications en termes de performances permet d'optimiser votre flux de travail de lecture de codes-barres. La fonctionnalité fonctionne efficacement avec les options de vitesse de lecture d'IronBarcode, ce qui vous permet d'équilibrer la précision et la performance en fonction des besoins de votre application.

Pour les applications nécessitant un traitement à grande vitesse, vous pouvez combiner AutoRotate avec d'autres techniques d'optimisation :

var fastReadOptions = new BarcodeReaderOptions
{
    AutoRotate = true,
    Speed = ReadingSpeed.Faster,
    // Specify expected barcode types to improve performance
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    // Define crop region if barcode location is predictable
    CropArea = new System.Drawing.Rectangle(100, 100, 300, 300)
};
var fastReadOptions = new BarcodeReaderOptions
{
    AutoRotate = true,
    Speed = ReadingSpeed.Faster,
    // Specify expected barcode types to improve performance
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    // Define crop region if barcode location is predictable
    CropArea = new System.Drawing.Rectangle(100, 100, 300, 300)
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Intégration avec les fonctions de correction d'image

AutoRotate fonctionne de manière transparente avec les filtres de correction d'image d'IronBarcode. Lorsque vous avez affaire à des images de mauvaise qualité qui sont également tournées, vous pouvez appliquer plusieurs corrections :

var advancedOptions = new BarcodeReaderOptions
{
    AutoRotate = true,
    // Apply additional image corrections
    ImageFilters = new ImageFilterCollection
    {
        new AdaptiveThresholdFilter(),
        new BrightnessFilter(1.2f),
        new ContrastFilter(1.5f)
    }
};

var results = BarcodeReader.Read("low-quality-rotated-barcode.jpg", advancedOptions);
var advancedOptions = new BarcodeReaderOptions
{
    AutoRotate = true,
    // Apply additional image corrections
    ImageFilters = new ImageFilterCollection
    {
        new AdaptiveThresholdFilter(),
        new BrightnessFilter(1.2f),
        new ContrastFilter(1.5f)
    }
};

var results = BarcodeReader.Read("low-quality-rotated-barcode.jpg", advancedOptions);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Bonnes pratiques pour la correction de l'orientation

  1. Comportement par défaut : Étant donné que AutoRotate est activé par défaut, vous n'avez généralement pas besoin de le définir explicitement, sauf si vous l'avez désactivé précédemment ou si vous voulez vous assurer qu'il est actif.

  2. Combinaison avec les régions de recadrage : Lorsque vous utilisez des régions de recadrage pour améliorer les performances, assurez-vous que la zone de recadrage est suffisamment grande pour accueillir le code-barres pivoté.

  3. Traitement multithread : AutoRotate est à l'abri des threads et fonctionne bien avec les opérations asynchrones et multithreads, ce qui le rend adapté aux applications de traitement de codes-barres à fort volume.

  4. Considérations spécifiques au format : Alors que AutoRotate fonctionne avec tous les formats de codes-barres pris en charge, certains formats comme PDF417 et Data Matrix peuvent bénéficier d'options supplémentaires spécifiques au format.

Dans de nombreux cas, corriger la rotation peut ne pas être suffisant, et un filtre est requis. Apprenez à utiliser les filtres d'image dans l'article suivant : "Comment utiliser les filtres de correction d'image."

Questions Fréquemment Posées

Comment corriger des images de codes-barres ayant subi une rotation dans mon application C# ?

IronBarcode corrige automatiquement les images de codes-barres ayant subi une rotation à l'aide de sa fonction AutoRotate intégrée. Il suffit de définir AutoRotate sur true dans BarcodeReaderOptions (il est activé par défaut), et la bibliothèque détectera et lira les codes-barres à n'importe quel angle sans rotation manuelle.

Quelles orientations de codes-barres peuvent être corrigées automatiquement ?

La fonction AutoRotate d'IronBarcode peut détecter et corriger toute orientation de degré non nul, y compris les rotations de 20°, 45°, 90°, 180° et 270°. Cette fonction fonctionne avec différents formats de codes-barres, notamment les codes QR, Data Matrix et les codes-barres linéaires traditionnels.

Dois-je écrire un code spécial pour gérer les BarCodes inclinés ?

Aucun code spécial n'est requis. La propriété AutoRotate d'IronBarcode est activée par défaut, de sorte que la correction de l'orientation fonctionne dès le départ. Vous n'avez besoin que d'une ligne de code : var result = IronBarcode.BarcodeReader.Read("rotatedImage.png") ;

La correction de l'orientation peut-elle fonctionner avec des documents PDF ?

Oui, la fonction AutoRotate d'IronBarcode fonctionne de manière transparente lors de la numérisation de codes-barres à partir de documents PDF ainsi que d'images. La correction de l'orientation garantit des résultats fiables quel que soit le format source.

Quelle est la technologie utilisée pour la détection automatique de l'orientation ?

IronBarcode utilise des algorithmes avancés d'apprentissage automatique pour détecter automatiquement l'orientation des codes-barres. Cette approche intelligente garantit une lecture précise des codes-barres, même à partir d'images inclinées ou tournées, sans intervention manuelle.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il a une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, documentation et expérience globale.
Prêt à commencer?
Nuget Téléchargements 2,002,059 | Version : 2025.12 vient de sortir