Comment corriger l'orientation d'un BarCode en C
IronBarcode corrige automatiquement l'orientation des codes-barres grâce à sa fonctionnalité intégrée AutoRotate, qui détecte et lit les codes-barres sous n'importe quel angle sans rotation manuelle de l'image, garantissant une lecture précise 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.
Démarrage rapide : Correction automatique de la rotation de l'image en une ligne
Voici à quel point il est facile de corriger l'orientation : une seule ligne de code utilisant l'option AutoRotate d'IronBarcode — activée par défaut — pour lire les BARCODES avec précision même lorsque les images sont pivotées.
-
Installez IronBarcode avec le Gestionnaire de Packages NuGet
PM > Install-Package BarCode -
Copiez et exécutez cet extrait de code.
var result = IronBarCode.BarcodeReader.Read("rotatedImage.png", new IronBarCode.BarcodeReaderOptions { AutoRotate = true }); -
Déployez pour tester sur votre environnement de production.
Commencez à utiliser IronBarcode dans votre projet dès aujourd'hui avec un essai gratuit
Flux de travail minimal (5 étapes)
- Téléchargez la bibliothèque C# pour corriger l'orientation des codes-barres
- Définissez la propriété
AutoRotatesur true (vrai) - Importer les codes-barres et QR codes ciblés
- Lire les codes-barres et les QR codes avec l'option de lecture
- Récupérer la valeur résultante du code-barres
Comment réparer l'orientation des BarCodes dans mon application?
Pour appliquer la 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 fonctionnalité AutoRotate est particulièrement utile lorsque l'on travaille avec divers formats de BARCODES, notamment les BARCODES QR, les BARCODES Data Matrix et les BARCODES 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.
Rotation de 20°
Rotation de 45°
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)
La fonctionnalité AutoRotate utilise des algorithmes avancés d'apprentissage automatique pour détecter automatiquement l'orientation du BARCODE. 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}");
}
}
Imports IronBarCode
Imports System
Imports System.Collections.Generic
' Process multiple rotated images
Dim rotatedImages As New List(Of String) From {"rotate20.png", "rotate45.png", "rotate90.png"}
Dim options As New BarcodeReaderOptions With {
.AutoRotate = True,
' Combine with other reading optimizations
.Speed = ReadingSpeed.Balanced,
.ExpectMultipleBarcodes = False
}
For Each imagePath In rotatedImages
Dim results = BarcodeReader.Read(imagePath, options)
If results.Length > 0 Then
Console.WriteLine($"Image: {imagePath} - Barcode Value: {results(0).Value}")
Console.WriteLine($"Barcode Type: {results(0).BarcodeType}")
Console.WriteLine($"Rotation Applied: {results(0).WasRotated}")
End If
Next
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 BarCodes. 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 à haute 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)
};
Dim fastReadOptions As New BarcodeReaderOptions With {
.AutoRotate = True,
.Speed = ReadingSpeed.Faster,
' Specify expected barcode types to improve performance
.ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128,
' Define crop region if barcode location is predictable
.CropArea = New System.Drawing.Rectangle(100, 100, 300, 300)
}
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);
Imports System
Dim advancedOptions As New BarcodeReaderOptions With {
.AutoRotate = True,
' Apply additional image corrections
.ImageFilters = New ImageFilterCollection From {
New AdaptiveThresholdFilter(),
New BrightnessFilter(1.2F),
New ContrastFilter(1.5F)
}
}
Dim results = BarcodeReader.Read("low-quality-rotated-barcode.jpg", advancedOptions)
Bonnes pratiques pour la correction de l'orientation
-
Comportement par défaut : Étant donné que
AutoRotateest 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 souhaitez vous assurer qu'il est bien actif. -
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é.
-
Traitement multithread :
AutoRotateest thread-safe et fonctionne bien avec les opérations asynchrones et multithread, ce qui le rend adapté aux applications de traitement de BarCodes à haut volume. - Considérations spécifiques au format : bien que
AutoRotatefonctionne avec tous les formats de BARCODEs pris en charge, certains formats tels que 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.
Quels sont les avantages d'utiliser IronBarcode pour les opérations de code-barres ?
IronBarcode offre des avantages tels que la facilité d'intégration, la prise en charge de nombreux formats de codes-barres, la génération d'images de haute qualité et des capacités de lecture robustes, ce qui en fait un outil complet pour les opérations de codes-barres en C#.
IronBarcode offre-t-il des options de personnalisation pour l'apparence des codes-barres ?
Oui, IronBarcode offre des options de personnalisation étendues pour l'apparence des codes-barres, y compris des annotations de couleur, taille et texte, vous permettant d'adapter les codes-barres à vos exigences de conception spécifiques.
Comment IronBarcode peut-il aider à améliorer l'efficacité des processus d'affaires ?
IronBarcode améliore l'efficacité des processus d'affaires en permettant une génération et une lecture rapides et précises des codes-barres, réduisant les erreurs de saisie manuelle de données, et améliorant le suivi des stocks et des actifs.
Quelles compétences en programmation sont nécessaires pour implémenter IronBarcode dans un projet ?
Une connaissance de base de la programmation C# est suffisante pour implémenter IronBarcode dans un projet, car il fournit des méthodes simples et une documentation complète pour guider les développeurs.
IronBarcode convient-il aux petits projets ainsi qu'aux grandes applications d'entreprise ?
IronBarcode est conçu pour être évolutif et polyvalent, ce qui le rend approprié pour les petits projets ainsi que pour les grandes applications d'entreprise nécessitant des solutions de codes-barres robustes.

