Codes QR .NET Core: Lire et générer des codes QR en C#
Lors de la création d'applications web ou Enterprise sur .NET Core, la prise en charge des codes QR (pour le suivi des stocks, les flux de paiement ou l'authentification à deux facteurs) est une exigence fréquente. Plutôt que de consacrer des cycles de développement à des algorithmes d'encodage de bas niveau, vous pouvez opter pour une bibliothèque dédiée qui gère l'intégralité du flux de travail. IronQR fournit une solution complète de code QR for .NET, couvrant tout, de la génération de base à la lecture basée sur l'apprentissage automatique et à la correction d'erreurs avancée.
Prêt à l'essayer vous-même ? Démarrez votre essai gratuit dès aujourd'hui et découvrez à quelle vitesse vous pouvez ajouter la fonctionnalité QR à votre projet.
Comment installer la bibliothèque de codes QR ?
L'installation IronQR via NuGet ne prend que quelques secondes. Ouvrez Visual Studio, accédez à Outils > Gestionnaire de packages NuGet > Gérer les packages NuGet pour la solution , recherchez IronQR, et cliquez sur Installer . Ce package possède un minimum de dépendances et est compatible nativement avec Windows, macOS et Linux.
Install-Package IronQR
IronQR cible .NET Core 6, 7, 8, 9 et 10, ainsi que .NET Framework 4.6.2 et versions ultérieures. Pour les projets multiplateformes, une intégration SkiaSharp gère le traitement d'images sur les environnements d'exécution non-Windows. La bibliothèque fonctionne avec les applications web ASP.NET Core , les applications console et les solutions de bureau sans configuration d'exécution supplémentaire. Une fois installées, toutes les méthodes et tous les types d'extensions nécessaires sont immédiatement disponibles.
Comment lire un code QR basique à partir d'une image ?
La lecture des données des codes QR à partir de fichiers image ne nécessite que quelques lignes de code. La classe QrReader utilise un modèle d'apprentissage automatique avancé qui évalue la qualité de l'image et sélectionne automatiquement le mode de segmentation approprié, vous donnant des résultats précis même lorsque l'image d'entrée n'est pas idéale.
using IronQr;
using IronSoftware.Drawing;
// Load image containing QR code
var inputBmp = AnyBitmap.FromFile("qr-sample.png");
// Create QrImageInput from the bitmap
QrImageInput imageInput = new QrImageInput(inputBmp);
// Initialize QR Reader with ML model
QrReader reader = new QrReader();
// Read and decode all QR codes in the image
IEnumerable<QrResult> results = reader.Read(imageInput);
// Output decoded text strings
foreach (var qrCode in results)
{
Console.WriteLine($"QR Code Value: {qrCode.Value}");
Console.WriteLine($"URL: {qrCode.Url}");
}
using IronQr;
using IronSoftware.Drawing;
// Load image containing QR code
var inputBmp = AnyBitmap.FromFile("qr-sample.png");
// Create QrImageInput from the bitmap
QrImageInput imageInput = new QrImageInput(inputBmp);
// Initialize QR Reader with ML model
QrReader reader = new QrReader();
// Read and decode all QR codes in the image
IEnumerable<QrResult> results = reader.Read(imageInput);
// Output decoded text strings
foreach (var qrCode in results)
{
Console.WriteLine($"QR Code Value: {qrCode.Value}");
Console.WriteLine($"URL: {qrCode.Url}");
}
Imports IronQr
Imports IronSoftware.Drawing
' Load image containing QR code
Dim inputBmp = AnyBitmap.FromFile("qr-sample.png")
' Create QrImageInput from the bitmap
Dim imageInput As New QrImageInput(inputBmp)
' Initialize QR Reader with ML model
Dim reader As New QrReader()
' Read and decode all QR codes in the image
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
' Output decoded text strings
For Each qrCode In results
Console.WriteLine($"QR Code Value: {qrCode.Value}")
Console.WriteLine($"URL: {qrCode.Url}")
Next
Entrée QR Code

Sortie

La méthode QrReader.Read() traite le QrImageInput et renvoie un IEnumerable<QrResult>, où chaque résultat contient le texte décodé, l'URL si elle a été encodée et la position spatiale du symbole QR dans l'image. La bibliothèque accepte les tableaux d'octets, les chemins de fichiers et les objets AnyBitmap, vous offrant une flexibilité pour toute architecture de projet, que vous lisiez à partir d'un disque, d'une base de données ou d'un flux de caméra en direct.
Le modèle d'apprentissage automatique qui sous-tend le lecteur distingue IronQR des bibliothèques purement algorithmiques. Il gère les imperfections du monde réel telles que le flou de mouvement, l'occlusion partielle et l'éclairage inégal sans nécessiter de prétraitement manuel ni de réglage de seuil.
Comment extraire des données avancées de codes QR ?
Au-delà du décodage de valeurs de base, IronQR expose les coordonnées, les segments de données brutes et les informations au niveau du module de chaque symbole scanné. Ceci est essentiel pour les flux de travail de traitement de documents où il est nécessaire de savoir précisément où un code QR apparaît sur la page, ou pour les applications qui doivent gérer plusieurs codes dans une seule image.
using IronQr;
using IronSoftware.Drawing;
var inputBmp = AnyBitmap.FromFile("document-with-qr.png");
QrImageInput imageInput = new QrImageInput(inputBmp);
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);
foreach (var qrCode in results)
{
// Access decoded value
Console.WriteLine($"Data: {qrCode.Value}");
// Get corner coordinate positions
foreach (PointF point in qrCode.Points)
{
Console.WriteLine($"Position: {point.X}, {point.Y}");
}
}
using IronQr;
using IronSoftware.Drawing;
var inputBmp = AnyBitmap.FromFile("document-with-qr.png");
QrImageInput imageInput = new QrImageInput(inputBmp);
QrReader reader = new QrReader();
IEnumerable<QrResult> results = reader.Read(imageInput);
foreach (var qrCode in results)
{
// Access decoded value
Console.WriteLine($"Data: {qrCode.Value}");
// Get corner coordinate positions
foreach (PointF point in qrCode.Points)
{
Console.WriteLine($"Position: {point.X}, {point.Y}");
}
}
Imports IronQr
Imports IronSoftware.Drawing
Dim inputBmp = AnyBitmap.FromFile("document-with-qr.png")
Dim imageInput As New QrImageInput(inputBmp)
Dim reader As New QrReader()
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
For Each qrCode In results
' Access decoded value
Console.WriteLine($"Data: {qrCode.Value}")
' Get corner coordinate positions
For Each point As PointF In qrCode.Points
Console.WriteLine($"Position: {point.X}, {point.Y}")
Next
Next
Saisissez le code QR

Résultats de la lecture QR avancée

La collection QrResult.Points contient les coordonnées des quatre coins du symbole QR détecté dans l'espace des pixels. Votre application peut les utiliser pour superposer des cadres de délimitation sur les images de documents, recadrer la région QR pour un traitement ultérieur ou transmettre les données de localisation à un système en aval qui associe les coordonnées physiques aux positions logiques du document.
IronQR traite les codes contenant des logos intégrés personnalisés, des modules endommagés ou des entrées basse résolution grâce au même pipeline d'apprentissage automatique. La bibliothèque ne nécessite aucune étape de prétraitement distincte : la détection et le décodage s'effectuent en un seul appel.
Comment les niveaux de correction d'erreurs affectent-ils la qualité des codes QR ?
La correction d'erreurs est le mécanisme qui permet à un lecteur de code QR de récupérer les données originales même lorsqu'une partie du code est masquée, mal imprimée ou physiquement endommagée. La norme QR Code définit quatre niveaux – Faible (L), Moyen (M), Quartile (Q) et Élevé (H) – chacun privilégiant la capacité de stockage à la tolérance aux dommages.
| Niveau | Capacité de récupération | Meilleure utilisation |
|---|---|---|
| L | ~7% | Affichages numériques nets, densité de données maximale |
| M | ~15% | Applications d'impression générales |
| Q | ~25% | Étiquettes industrielles, usure modérée prévue |
| H | ~30% | Logos intégrés, surfaces extérieures ou soumises à une forte usure |
Lors de la génération de codes QR, la spécification d'un niveau de correction d'erreur plus élevé garantit que le résultat reste fiable dans des conditions de lecture réelles :
using IronQr;
using IronSoftware.Drawing;
// Configure QR options with high error correction
var qrOptions = new QrOptions(QrErrorCorrectionLevel.High, 20);
// Generate a QR code with specified error correction
QrCode myQr = QrWriter.Write("https://ironsoftware.com", qrOptions);
// Save as PNG image
AnyBitmap qrImage = myQr.Save();
qrImage.SaveAs("high-error-correction-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Configure QR options with high error correction
var qrOptions = new QrOptions(QrErrorCorrectionLevel.High, 20);
// Generate a QR code with specified error correction
QrCode myQr = QrWriter.Write("https://ironsoftware.com", qrOptions);
// Save as PNG image
AnyBitmap qrImage = myQr.Save();
qrImage.SaveAs("high-error-correction-qr.png");
IRON VB CONVERTER ERROR developers@ironsoftware.com
Sortie

Le constructeur QrOptions accepte le niveau de correction d'erreur et un numéro de version maximum. Les codes de version 40 peuvent stocker jusqu'à 7 089 caractères numériques, tandis que les codes de version 1 n'en contiennent que 41. Définir une version maximale inférieure limite la taille de la sortie, ce qui est utile lorsque vous avez besoin de dimensions physiques cohérentes pour un lot. Plus le niveau de correction d'erreurs est élevé, plus le nombre de modules réservés à la redondance est important, ce qui réduit la capacité de données nette pour une version donnée.
La fonction de tolérance aux pannes IronQR s'appuie sur cette propriété : lors de la lecture de codes générés à des niveaux de correction plus élevés, la bibliothèque récupère des données à partir de codes qui échoueraient totalement avec un décodeur purement algorithmique.
Comment générer des codes QR avec des caractères internationaux ?
IronQR prend en charge toute la gamme des modes d'encodage QR : numérique, alphanumérique, octet et Kanji. Pour les textes japonais et autres contenus Unicode, la bibliothèque sélectionne automatiquement l'encodage le plus économe en espace :
using IronQr;
using IronSoftware.Drawing;
// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
// The library selects Kanji mode automatically
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Generate QR that encodes Japanese Unicode text
QrCode japaneseQr = QrWriter.Write("こんにちは世界");
// The library selects Kanji mode automatically
AnyBitmap qrImage = japaneseQr.Save();
qrImage.SaveAs("japanese-qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Generate QR that encodes Japanese Unicode text
Dim japaneseQr As QrCode = QrWriter.Write("こんにちは世界")
' The library selects Kanji mode automatically
Dim qrImage As AnyBitmap = japaneseQr.Save()
qrImage.SaveAs("japanese-qr.png")
Sortie du code QR

L'encodage Kanji utilise deux octets par module au lieu de huit bits, de sorte qu'un code QR en langue japonaise de même version stocke beaucoup plus de caractères qu'un équivalent en mode octet UTF-8. Pour les contenus mixtes, comme une URL suivie de texte japonais, IronQR segmente l'entrée et encode chaque segment en mode optimal. Vous n'avez pas besoin de spécifier manuellement les limites des segments ni d'appeler les fonctions d'assistance à l'encodage ; Le pipeline d'encodage s'en charge pour vous.
Cette sélection automatique couvre également les marqueurs d'interprétation de canal étendue (ECI), qui signalent aux scanners que des jeux de caractères non standard sont utilisés. Les applications destinées aux marchés internationaux peuvent transmettre directement n'importe quelle chaîne Unicode à QrWriter.Write() sans configuration séparée.
Comment utiliser les générateurs de charge utile pour les données QR structurées ?
Un code QR qui encode une simple URL fonctionne pour le partage de liens simples, mais de nombreuses applications ont besoin d'encoder des données structurées : identifiants WiFi, fiches de contact au format vCard ou données d'événements. Le formatage manuel de ces charges utiles est source d'erreurs ; L'absence d'un point-virgule ou un ordre incorrect des champs peuvent entraîner une mauvaise interprétation des données par les scanners.
IronQR fournit des fonctions d'assistance pour la charge utile qui construisent correctement ces chaînes structurées :
using IronQr;
using IronSoftware.Drawing;
// Generate QR code with URL payload
var urlQrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
// Save QR as PNG image file
AnyBitmap qrImage = urlQrCode.Save();
qrImage.SaveAs("url-qr-code.png");
Console.WriteLine("QR code generated successfully.");
using IronQr;
using IronSoftware.Drawing;
// Generate QR code with URL payload
var urlQrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
// Save QR as PNG image file
AnyBitmap qrImage = urlQrCode.Save();
qrImage.SaveAs("url-qr-code.png");
Console.WriteLine("QR code generated successfully.");
Imports IronQr
Imports IronSoftware.Drawing
' Generate QR code with URL payload
Dim urlQrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/")
' Save QR as PNG image file
Dim qrImage As AnyBitmap = urlQrCode.Save()
qrImage.SaveAs("url-qr-code.png")
Console.WriteLine("QR code generated successfully.")
Création d'un code QR

La méthode QrWriter.Write() accepte soit une chaîne de caractères simple, soit un objet de charge utile structuré. Pour les réseaux Wi-Fi, la charge utile encode le SSID, le mot de passe et le type de sécurité dans un format reconnu par les scanners Android et iOS. Pour les informations de contact, le résultat est conforme à la norme MeCard utilisée par la plupart des lecteurs de QR code mobiles. La page de la fonctionnalité de génération documente tous les types de charges utiles pris en charge et leurs champs obligatoires.
La bibliothèque génère des images avec des dimensions en pixels configurables. Pour une utilisation en production, la génération de codes d'une résolution minimale de 200x200 pixels garantit une numérisation fiable à des distances typiques de smartphone. Les formats plus grands sont avantageux pour les applications extérieures ou imprimées où la distance de numérisation dépasse un mètre.
Comment personnaliser l'apparence d'un code QR ?
IronQR vous permet de contrôler l'apparence visuelle des codes générés sans sacrifier leur lisibilité. Vous pouvez modifier les couleurs de premier plan et d'arrière-plan, appliquer une identité visuelle personnalisée ou intégrer un logo dans la zone de silence centrale.
using IronQr;
using IronSoftware.Drawing;
// Define custom colors for the QR code
var darkColor = Color.FromArgb(30, 30, 120); // Deep navy foreground
var lightColor = Color.White;
var options = new QrOptions(QrErrorCorrectionLevel.High, maxVersion: 20)
{
BackgroundColor = lightColor,
Color = darkColor,
// Embed a logo image into the QR center
Logo = AnyBitmap.FromFile("logo.png")
};
QrCode styledQr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap output = styledQr.Save();
output.SaveAs("branded-qr.png");
using IronQr;
using IronSoftware.Drawing;
// Define custom colors for the QR code
var darkColor = Color.FromArgb(30, 30, 120); // Deep navy foreground
var lightColor = Color.White;
var options = new QrOptions(QrErrorCorrectionLevel.High, maxVersion: 20)
{
BackgroundColor = lightColor,
Color = darkColor,
// Embed a logo image into the QR center
Logo = AnyBitmap.FromFile("logo.png")
};
QrCode styledQr = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options);
AnyBitmap output = styledQr.Save();
output.SaveAs("branded-qr.png");
Imports IronQr
Imports IronSoftware.Drawing
' Define custom colors for the QR code
Dim darkColor As Color = Color.FromArgb(30, 30, 120) ' Deep navy foreground
Dim lightColor As Color = Color.White
Dim options As New QrOptions(QrErrorCorrectionLevel.High, maxVersion:=20) With {
.BackgroundColor = lightColor,
.Color = darkColor,
' Embed a logo image into the QR center
.Logo = AnyBitmap.FromFile("logo.png")
}
Dim styledQr As QrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/", options)
Dim output As AnyBitmap = styledQr.Save()
output.SaveAs("branded-qr.png")
L'intégration d'un logo réduit la zone de données effective, la bibliothèque exige donc un niveau de correction d'erreurs H lorsqu'un logo est fourni. La zone de silence réservée au centre représente environ 30 % de la surface du code, ce qui est dans la capacité de récupération du niveau H. La bibliothèque applique automatiquement cette contrainte : si vous définissez un niveau de correction d'erreur inférieur en plus d'un logo, IronQR génère une exception avec un message descriptif au lieu de produire un code dont l'analyse est peu fiable.
Pour les applications ASP.NET Core , le tutoriel sur le générateur de codes QR ASP.NET Core montre comment servir les codes QR générés en tant que réponses d'image à partir d'une action de contrôleur. Le flux de sortie écrit directement dans la réponse sans E/S de fichiers intermédiaires, ce qui maintient une faible latence pour les points de terminaison à fort trafic.
Comment lire les codes QR dans une application ASP.NET Core ?
La numérisation des codes QR côté serveur (à partir d'images téléchargées, de chaînes de traitement de documents ou de systèmes d'inspection automatisés) est un cas d'utilisation courant de l'API de lecture. Le guide du scanner de code QR ASP.NET couvre la configuration complète du contrôleur et du service, mais le modèle de lecture de base est le même que celui d'une application console :
using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
[ApiController]
[Route("api/qr")]
public class QrScanController : ControllerBase
{
[HttpPost("scan")]
public IActionResult Scan(IFormFile imageFile)
{
using var stream = imageFile.OpenReadStream();
var bitmap = AnyBitmap.FromStream(stream);
var imageInput = new QrImageInput(bitmap);
var reader = new QrReader();
var results = reader.Read(imageInput);
var decoded = results.Select(r => new { r.Value, r.Url }).ToList();
return Ok(decoded);
}
}
using IronQr;
using IronSoftware.Drawing;
using Microsoft.AspNetCore.Mvc;
[ApiController]
[Route("api/qr")]
public class QrScanController : ControllerBase
{
[HttpPost("scan")]
public IActionResult Scan(IFormFile imageFile)
{
using var stream = imageFile.OpenReadStream();
var bitmap = AnyBitmap.FromStream(stream);
var imageInput = new QrImageInput(bitmap);
var reader = new QrReader();
var results = reader.Read(imageInput);
var decoded = results.Select(r => new { r.Value, r.Url }).ToList();
return Ok(decoded);
}
}
Imports IronQr
Imports IronSoftware.Drawing
Imports Microsoft.AspNetCore.Mvc
<ApiController>
<Route("api/qr")>
Public Class QrScanController
Inherits ControllerBase
<HttpPost("scan")>
Public Function Scan(imageFile As IFormFile) As IActionResult
Using stream = imageFile.OpenReadStream()
Dim bitmap = AnyBitmap.FromStream(stream)
Dim imageInput = New QrImageInput(bitmap)
Dim reader = New QrReader()
Dim results = reader.Read(imageInput)
Dim decoded = results.Select(Function(r) New With {Key .Value = r.Value, Key .Url = r.Url}).ToList()
Return Ok(decoded)
End Using
End Function
End Class
La méthode AnyBitmap.FromStream() accepte tout flux lisible ; le même chemin d'exécution fonctionne donc pour les fichiers téléchargés via un formulaire, les images récupérées depuis un stockage blob ou les images extraites d'un pipeline vidéo. Le contrôleur n'écrit aucun fichier temporaire sur le disque, ce qui est important pour les déploiements conteneurisés où le système de fichiers peut être en lecture seule.
Pour les scénarios à haut débit, instanciez QrReader une fois par durée de vie de l'application en tant que singleton, puisque le coût de chargement du modèle ML est payé lors de la première construction. Les appels suivants Read() sur la même instance sont thread-safe et partagent le modèle chargé.
Comment générer des codes QR dans une application .NET MAUI ?
Le tutoriel sur les codes QR .NET MAUI démontre la génération multiplateforme complète sur iOS, Android, macOS et Windows. IronQR utilise le moteur de rendu SkiaSharp lorsqu'il est exécuté sur des plateformes non-Windows, ce qui garantit un rendu cohérent sur toutes les cibles MAUI.
using IronQr;
using IronSoftware.Drawing;
// Generate QR and convert to a byte array for display in MAUI
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap bitmap = qr.Save();
byte[] imageBytes = bitmap.ExportBytes();
// Bind imageBytes to an <Image Source> in your MAUI page
using IronQr;
using IronSoftware.Drawing;
// Generate QR and convert to a byte array for display in MAUI
QrCode qr = QrWriter.Write("https://ironsoftware.com/csharp/qr/");
AnyBitmap bitmap = qr.Save();
byte[] imageBytes = bitmap.ExportBytes();
// Bind imageBytes to an <Image Source> in your MAUI page
Imports IronQr
Imports IronSoftware.Drawing
' Generate QR and convert to a byte array for display in MAUI
Dim qr As QrCode = QrWriter.Write("https://ironsoftware.com/csharp/qr/")
Dim bitmap As AnyBitmap = qr.Save()
Dim imageBytes As Byte() = bitmap.ExportBytes()
' Bind imageBytes to an <Image Source> in your MAUI page
Sur les cibles mobiles, ExportBytes() renvoie un tableau d'octets PNG que vous pouvez alimenter directement dans un StreamImageSource ou écrire dans un ImageButton. L'échafaudage MAUI ne nécessite aucun chemin de code spécifique à la plateforme : la même logique de génération s'exécute de manière identique sur les quatre cibles MAUI.
Pour les projets VB .NET , la surface de l'API est identique ; Seule la syntaxe diffère. La bibliothèque est fournie sous forme d'un seul package NuGet , sans qu'aucun assembly VB .NET séparé ne soit requis.
Quelles sont vos prochaines étapes ?
IronQR couvre l'intégralité du cycle de vie des codes QR en .NET , de la génération de base et de l'encodage structuré de la charge utile à la lecture par apprentissage automatique des codes endommagés ou marqués. La bibliothèque gère l'encodage Kanji, la configuration de la correction d'erreurs et la sortie d'images multiplateformes, vous permettant ainsi de vous concentrer sur la logique spécifique à votre application.
Pour mettre en pratique ce que vous avez appris :
- Consultez le tutoriel sur le lecteur de codes QR en C# pour une analyse plus approfondie de l'API de lecture et du traitement des résultats.
- Suivez le tutoriel de l'application de génération de code QR C# pour obtenir une présentation complète du projet.
- Consultez les exemples de code pour découvrir d'autres modèles de génération et de lecture.
- Achetez une licence IronQR pour débloquer toutes les fonctionnalités pour un déploiement en production, ou prolongez la période d'essai gratuite si vous avez besoin de plus de temps d'évaluation.
Questions Fréquemment Posées
Quelles versions de .NET sont prises en charge par IronQR ?
IronQR prend en charge .NET Core 6, 7, 8, 9 et 10, ainsi que .NET Framework 4.6.2 et versions ultérieures. Il cible également .NET Standard 2.0 et versions ultérieures, ce qui le rend compatible avec les projets Xamarin, .NET MAUI, Blazor et ASP.NET Core .
Comment lire un code QR à partir d'un fichier image en C# ?
Chargez l'image à l'aide de `AnyBitmap.FromFile()`, transmettez-la à un `QrImageInput`, puis appelez `QrReader.Read()`. La méthode renvoie un `IEnumerable`.
Quels sont les quatre niveaux de correction d'erreur des codes QR ?
Les quatre niveaux sont : Faible (F, environ 7 % de récupération), Moyen (M, environ 15 %), Quartile (Q, environ 25 %) et Élevé (E, environ 30 %). Les niveaux supérieurs ajoutent des modules de redondance, ce qui réduit la capacité de données nette mais améliore la fiabilité de la lecture des codes endommagés ou partiellement masqués.
IronQR peut-il lire les codes QR contenant un logo ou partiellement endommagés ?
Oui. Le modèle de détection basé sur l'apprentissage automatique d' IronQR gère les codes partiellement endommagés, les logos intégrés, le flou de mouvement et les entrées basse résolution sans nécessiter de prétraitement manuel.
Comment intégrer un logo dans un code QR avec IronQR?
Attribuez à la propriété `Logo` d'un objet `QrOptions` une image `AnyBitmap` de votre logo et définissez le niveau de correction d'erreur sur « Élevé ». IronQR applique automatiquement cette contrainte car un logo centré occupe environ 30 % de la surface du code.
IronQR prend-il en charge les caractères japonais et autres caractères Unicode ?
Oui. Passez n'importe quelle chaîne Unicode à `QrWriter.Write()` et la bibliothèque sélectionnera automatiquement le mode Kanji pour les caractères japonais ou le mode octet avec marqueurs ECI pour les autres contenus Unicode.
Comment générer des codes QR dans une application ASP.NET Core ?
Utilisez `AnyBitmap.FromStream()` pour lire les images téléchargées et `QrWriter.Write()` pour générer les codes. Retournez le résultat sous forme de `FileContentResult` de type MIME `image/png`. Instanciez `QrReader` en tant que singleton afin d'amortir le coût de chargement du modèle d'apprentissage automatique.
IronQR est-il multiplateforme ?
Oui. IronQR utilise un moteur de rendu SkiaSharp sur les plateformes non-Windows, assurant une génération et une lecture cohérentes des codes QR sur macOS, Linux, iOS et Android via .NET MAUI.



