Divulgazione completa: Siamo il team di relations per gli sviluppatori di Iron Software, l'azienda dietro IronQR, una delle librerie in questo confronto. Detto questo, crediamo che le valutazioni oneste servano a tutti meglio della pubblicità. Mostreremo la nostra metodologia, riconosceremo i nostri pregiudizi e lasceremo che il codice parli da sé. Abbiamo sottoposto ogni libreria C# per codici QR a identici criteri di valutazione: generazione semplice di codici QR, lettura di codici QR da immagini, profondità di personalizzazione, supporto multipiattaforma e costo della licenza. Di seguito il risultato, un confronto tra 11 librerie degne di nota per codici QR nell'ecosistema .NET, progettate per aiutarti a scegliere quella giusta per il tuo progetto fin dal primo tentativo. Ecco come si presenta la generazione di codici QR in tre righe con in Visual Studio, una delle librerie che tratteremo: IronQR using IronQr; using IronSoftware.Drawing; QrCode qr = QrWriter.Write("https://example.com"); AnyBitmap bitmap = qr.Save(); bitmap.SaveAs("myqr.png"); Esempio di output del codice QR con IronQR Quella semplicità è un requisito di base. La vera domanda è cosa succede quando devi un codice QR danneggiato da uno scanner di magazzino, incorporare un logo di marca, puntare a container Linux o elaborare migliaia di codici in un processo batch. È qui che le librerie divergono, ed è qui che questo confronto si rivela utile. leggere La tabella di confronto definitiva: TL;DR Prima di addentrarci nei dettagli, ecco il quadro completo. Questa tabella cattura le dimensioni che contano di più quando si seleziona una libreria QR per un progetto .NET. Libreria Genera Leggi Logo/Stile Micro QR Multipiattaforma Licenza Download NuGet IronQR ✅ ✅ Basato su ML ✅ Completo ✅ + RMQR ✅ Win/Mac/Linux/Mobile Commerciale (a partire da $749) Circa 56K QRCoder ✅ ❌ ✅ Moderato ✅ ⚠️ Parziale (System.Drawing) MIT (Gratuito) Circa 68M ZXing.Net ✅ ✅ ❌ Minimo ❌ ⚠️ Tramite binding Apache 2.0 (Gratuito) Circa 32M Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (Gratuito) Circa 4,1M SkiaSharp.QrCode ✅ ❌ ✅ Forme personalizzate ❌ ✅ MIT (Gratuito) Circa 1,2M Aspose.BarCode ✅ ✅ ✅ ✅ ✅ Commerciale (a partire da $999) Circa 5,4M Syncfusion Barcode ✅ ❌ ✅ Moderato ❌ ✅ (controllo UI) Commerciale (community gratuita) Circa 2M+ Spire.Barcode ✅ ✅ ✅ Incorporazione logo ❌ ⚠️ (System.Drawing) Commerciale (a partire da $599) Circa 450K IronBarcode ✅ ✅ ✅ ✅ Micro QR ✅ Win/Mac/Linux Commerciale (a partire da $749) Circa 1,2M Dynamsoft Barcode Reader ❌ ✅ Alta perf. N/A ✅ ✅ Commerciale ($1.249+/anno) Circa 250K BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (Gratuito) Circa 4,5M Tabella 1: Confronto completo delle 11 librerie .NET per codici QR in base ai criteri di selezione chiave. I conteggi dei download sono approssimativi all'inizio del 2026. Il resto di questo articolo approfondisce ogni riga, con codice, compromessi e valutazioni oneste. Come abbiamo valutato queste librerie? Abbiamo valutato ogni libreria in base a sette criteri, ponderati in base alla frequenza con cui guidano le decisioni di selezione nel mondo reale: — È in grado di creare codici QR da stringhe, URL e dati strutturati (vCard, credenziali Wi-Fi)? Generazione QR — È in grado di decodificare codici QR da immagini, scansioni o PDF? Come gestisce codici danneggiati o ruotati? Lettura QR — Incorporazione di loghi, controllo dei colori, stile delle forme dei moduli, configurazione della correzione degli errori Personalizzazione — QR standard, Micro QR, RMQR (Micro QR rettangolare) Supporto formato QR — Funziona correttamente su Windows, Linux, macOS e all'interno di container Docker senza hack di System.Drawing? Multipiattaforma — Open-source vs commerciale, prezzi per sviluppatore, sconti sui pacchetti Licenza e Costo — Qualità dei riferimenti API, disponibilità di tutorial, dimensioni della community, manutenzione attiva Documentazione ed Ecosistema Tutti gli esempi di codice puntano a e utilizzano istruzioni di primo livello. Laddove .NET 10 introdurrà miglioramenti rilevanti, li segnaleremo. .NET 8 (LTS) Quale libreria QR dovresti scegliere? Un quadro decisionale Salva i profili delle 11 librerie qui sotto se conosci già i tuoi vincoli. Ecco il percorso rapido: → o . Entrambi sono con licenza MIT. QRCoder ha più renderer e helper di payload; Net.Codecrete è più leggero ed evita completamente System.Drawing. "Ho bisogno di generare codici QR gratuitamente senza dipendenze." QRCoder Net.Codecrete.QrCodeGenerator → (lettura basata su ML, migliore accuratezza su codici danneggiati), (gratuito, collaudato, supporto per i formati più ampi) o (pacchetto enterprise, costoso). "Ho bisogno sia di generare CHE di leggere codici QR." IronQR ZXing.Net Aspose.BarCode → , o . Tutti e tre evitano la dipendenza da System.Drawing che interrompe le distribuzioni multipiattaforma. "Sto distribuendo su Linux/Docker e non posso usare System.Drawing." IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → guida i benchmark di generazione pura. Per le prestazioni di lettura, è progettato specificamente per la scansione ad alta produttività. "Le prestazioni e l'ingombro della memoria sono critici." SkiaSharp.QrCode Dynamsoft Barcode Reader → Usa quello che hai. L'aggiunta di una libreria QR di un altro fornitore quando il tuo pacchetto ne include già una raramente ha senso in termini di licenza o manutenzione. "Utilizzo già un pacchetto Aspose/Syncfusion/Iron Software." → ha guide di integrazione esplicite per MAUI e Blazor. Il Microsoft MVP Jeff Fritz utilizzando IronQR con Blazor, un esempio reale di questo esatto pattern. "Sto creando un'app mobile Blazor/MAUI con scansione QR." IronQR ha creato un'app di biglietti da visita digitali basata su QR Le 11 librerie .NET per codici QR a confronto 1. IronQR — Lettura e generazione di codici QR basate su ML con supporto multipiattaforma IronQR è la libreria dedicata ai codici QR di Iron Software, separata dal loro più ampio prodotto IronBarcode. La sua caratteristica distintiva è un modello di machine learning (basato su ) che rileva e legge i codici QR da immagini imperfette, ruotate, parzialmente oscurate o fotografate con angolazioni strane, spesso in poche righe di codice. ONNX È inoltre in grado di creare oggetti di codici QR con facilità, con supporto per stilizzare i codici QR con immagini, aggiungere colori personalizzati e salvare la tua immagine QR in diversi formati di output. Generazione: using IronQr; using IronSoftware.Drawing; // Genera un codice QR stilizzato con logo var options = new QrOptions(QrErrorCorrectionLevel.High, 20); QrCode qr = QrWriter.Write("https://example.com", options); var style = new QrStyleOptions { Dimensions = 300, Margins = 10, Color = new Color("#2E75B6"), Logo = new QrLogo { Bitmap = AnyBitmap.FromFile("logo.png"), Width = 80, Height = 80 } }; AnyBitmap styledQr = qr.Save(style); styledQr.SaveAs("branded-qr.png"); Output del codice QR generato da IronQR Lettura: using IronQr; using IronSoftware.Drawing; var reader = new QrReader(); var input = new QrImageInput(AnyBitmap.FromFile("scanned-qr.jpg")); IEnumerable<QrResult> results = reader.Read(input); foreach (var result in results) Console.WriteLine($"Value: {result.Value}"); Output di lettura di IronQR Il modello ML è ciò che differenzia IronQR da tutte le altre librerie in questo elenco. Nei nostri test, ha decodificato con successo codici QR da foto di badge di conferenza e screenshot angolati dove ZXing.Net e i lettori di immagini di base non restituivano nulla. Il compromesso è la dimensione del pacchetto, il modello ONNX aggiunge peso. Se non hai bisogno della lettura, IronQR.Slim viene fornito senza il modello ML ed è significativamente più leggero. Punti di forza: La lettura basata su ML gestisce codici QR danneggiati, ruotati e parzialmente oscurati e dà priorità all'accuratezza Supporta i formati QR Code, Micro QR e RMQR (Micro QR rettangolare) API di stile completa: colori, loghi, moduli arrotondati, margini Multipiattaforma: Windows, macOS, Linux, iOS, Android, Docker, Azure, AWS Supporto per la lettura asincrona (ReadAsync) per carichi di lavoro server Salva in più formati come immagini PNG, JPG, TIFF multipagina e altro API user-friendly la rendono facile da usare Limitazioni: È richiesta una licenza commerciale (a partire da $749 per sviluppatore per la distribuzione) Il pacchetto completo è più pesante delle alternative open-source a causa del modello ML è inferiore rispetto alle opzioni open-source mature, prodotto più recente (lanciato circa nel 2023) Il conteggio dei download di NuGet I progetti solo di generazione potrebbero non necessitare dell'overhead ML Progetti che necessitano sia di generazione che di lettura, specialmente in condizioni di scansione imperfette (app mobili, scansione di magazzino, scenari di conferenze/eventi). Il dimostra IronQR che gestisce la generazione di codici QR in tempo reale con Blazor e branding personalizzato. Ideale per: caso di studio del biglietto da visita QR di Jeff Fritz 2. — Il generatore QR open-source più popolare QRCoder La libreria QRCoder è il pacchetto QR code più scaricato singolarmente su NuGet, con . Originariamente creato da Raffael Herrmann nel 2013 e ora , è un'implementazione pura C# focalizzata esclusivamente sulla di codici QR (non sulla lettura). oltre 68 milioni di download mantenuto da Shane32 generazione using QRCoder; // Genera un codice QR e salvalo come byte PNG using var qrGenerator = new QRCodeGenerator(); using var qrCodeData = qrGenerator.CreateQrCode("https://example.com", QRCodeGenerator.ECCLevel.H); using var pngQrCode = new PngByteQRCode(qrCodeData); byte[] qrCodeImage = pngQrCode.GetGraphic(20); File.WriteAllBytes("qrcoder-output.png", qrCodeImage); Immagine di output di QRCoder QRCoder fornisce più renderer: PngByteQRCode (multipiattaforma, senza dipendenza da System.Drawing), QRCode (basato su System.Drawing, solo Windows), SvgQRCode, AsciiQRCode e altri. Include anche generatori di payload per dati strutturati come credenziali Wi-Fi, vCard e segnalibri, che ti evitano di formattare manualmente queste stringhe. Punti di forza: Licenza MIT, completamente gratuita per uso commerciale Oltre 68 milioni di download su NuGet, enorme adozione da parte della community e stabilità comprovata Molteplici opzioni di renderer, tra cui un PngByteQRCode che evita System.Drawing Generatori di payload integrati (Wi-Fi, vCard, geolocalizzazione, eventi calendario) Supporto per codici Micro QR Zero dipendenze dai target .NET Standard Limitazioni: , non è possibile leggere o decodificare file di immagini QR code Solo generazione Alcuni renderer (come QRCode) dipendono da System.Drawing.Common, che è solo per Windows da .NET 6 in poi Nessuna incorporazione di logo integrata (dovresti comporre l'immagine da solo) Nessuno stile avanzato (forme dei moduli, gradienti) Progetti che necessitano solo della generazione di codici QR, specialmente quando il budget è pari a zero. Se hai bisogno di generare codici QR Wi-Fi o vCard e non hai bisogno di leggere i codici, QRCoder è la scelta pragmatica predefinita per la maggior parte degli sviluppatori .NET. Ideale per: 3. — Il coltellino svizzero delle librerie per codici a barre ZXing.Net ("Zebra Crossing") è la della libreria Java ZXing originale. È una libreria per codici a barre generica che supporta oltre 15 formati, QR Code, Data Matrix, Aztec, PDF 417, UPC, EAN, Code 128 e altro ancora. Il supporto QR è un sottoinsieme delle sue funzionalità più ampie. ZXing.Net porta .NET using ZXing; using ZXing.Common; using ZXing.QrCode; // Genera un codice QR var writer = new BarcodeWriterPixelData { Format = BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Height = 250, Width = 250, Margin = 1 } }; var pixelData = writer.Write("https://example.com"); // La lettura di un codice QR richiede un pacchetto di binding (es. ZXing.Net.Bindings.SkiaSharp) Output di ZXing.Net ZXing.Net richiede pacchetti di binding specifici della piattaforma per il rendering e la lettura. Il pacchetto principale fornisce la logica di codifica/decodifica; aggiungi ZXing.Net.Bindings.Windows.Compatibility, ZXing.Net.Bindings.SkiaSharp o ZXing.Net.Bindings.ImageSharp a seconda della tua piattaforma di destinazione. Questo approccio modulare è flessibile ma aggiunge complessità di integrazione. Punti di forza: Licenza Apache 2.0, gratuita per uso commerciale Generazione e lettura in un'unica libreria Supporta oltre 15 formati di codici a barre oltre ai codici QR , collaudato, vasta conoscenza della community Oltre 32 milioni di download su NuGet Binding disponibili per SkiaSharp, ImageSharp, OpenCV e altro Limitazioni: Le funzionalità specifiche per QR sono di base, nessuna incorporazione di loghi, nessuno stile avanzato L'accuratezza della lettura su codici QR danneggiati/ruotati è moderata rispetto alle soluzioni basate su ML I pacchetti di binding aggiungono complessità nella gestione delle dipendenze Il design dell'API mostra la sua età, meno fluente delle librerie .NET moderne Il ritmo di manutenzione attiva è rallentato (mantenuto dalla community) Progetti che necessitano sia di codici QR che di codici a barre tradizionali (vendita al dettaglio, logistica) e desiderano un'opzione gratuita e comprovata. Se la tua priorità sono le funzionalità specifiche per QR come lo stile o la lettura basata su ML piuttosto che l'ampia copertura dei formati di codici a barre, una libreria QR dedicata ti servirà meglio. Ideale per: 4. Net.Codecrete.QrCodeGenerator — Leggero e focalizzato sugli standard Net.Codecrete.QrCodeGenerator è una libreria di generazione di codici QR pulita e minimale di Manuel Bleichenbacher. È una , focalizzata sulla correttezza e sulla conformità agli standard ( ). traduzione .NET del generatore di codici QR Java di Project Nayuki ISO/IEC 18004 using Net.Codecrete.QrCodeGenerator; var qr = QrCode.EncodeText("https://example.com", QrCode.Ecc.Medium); string svg = qr.ToSvgString(4); File.WriteAllText("output.svg", svg); Esempio di output con Net.Codecrete.QrCodeGenerator Con , è ben adottata per una libreria focalizzata. La sua qualità distintiva sono le zero dipendenze da System.Drawing: genera nativamente SVG, dati di percorso XAML, PNG e BMP. Ciò la rende un'ottima scelta per progetti .NET multipiattaforma e servizi ASP.NET Core in esecuzione in Docker. circa 4,1 milioni di download su NuGet Punti di forza: Licenza MIT, completamente gratuita Nessuna dipendenza da System.Drawing, veramente multipiattaforma Ingombro ridotto, generazione rapida Output SVG e XAML integrato (utile per scenari WPF, WinUI e web) Implementazione corretta di tutte le 40 versioni QR e di tutti e 4 i livelli di correzione degli errori Ampia gamma di progetti di esempio (WinForms, WPF, ASP.NET Core, SkiaSharp, ImageSharp) Limitazioni: , nessuna capacità di lettura di codici QR Solo generazione Nessuna incorporazione di loghi o funzionalità di stile avanzate Personalizzazione limitata rispetto ai generatori di payload di QRCoder Meno contenuti della community e tutorial rispetto a QRCoder o ZXing.Net Sviluppatori che necessitano di un generatore QR piccolo, corretto e multipiattaforma con output SVG e senza bagaglio System.Drawing. Se il tuo target di distribuzione è Linux o Docker e hai solo bisogno della generazione, questa libreria merita seria considerazione. Ideale per: 5. SkiaSharp.QrCode — Generazione multipiattaforma ad alte prestazioni SkiaSharp.QrCode di è una libreria di generazione di codici QR focalizzata sulle prestazioni, basata su SkiaSharp. È stata creata specificamente per evitare i limiti di GDI+ di System.Drawing, offrendo al contempo prestazioni a livello nativo tramite l'accelerazione hardware di SkiaSharp. guitarrapc using SkiaSharp.QrCode.Image; // Riga singola: genera e salva QRCodeImageBuilder.SavePng("https://example.com", "qrcode.png"); // Oppure con impostazioni personalizzate var pngBytes = new QRCodeImageBuilder("https://example.com") .WithSize(512, 512) .WithErrorCorrection(ECCLevel.H) .ToByteArray(); Output di SkiaSharp.QrCode con riga singola I risultati dei benchmark dal repository del progetto mostrano che SkiaSharp.QrCode supera QRCoder e altre librerie QR .NET in termini di velocità e allocazione di memoria per le attività di generazione. Raggiunge il rendering zero-copy direttamente sulla tela SkiaSharp, evitando allocazioni di buffer intermedie. Punti di forza: Licenza MIT, gratuita per uso commerciale Prestazioni di generazione migliori della categoria (benchmark) Minima allocazione di memoria, bassa pressione sulla GC per scenari ad alta produttività Pronto per NativeAOT (supporto per la compilazione .NET Native AOT) Forme dei moduli personalizzate (cerchi, rettangoli arrotondati) per codici QR stilizzati Funziona su Windows, Linux, macOS, iOS, Android, WebAssembly Limitazioni: , nessuna lettura di codici QR Solo generazione Richiede dipendenze native di SkiaSharp (pacchetti NuGet specifici della piattaforma) Community più piccola rispetto a QRCoder o ZXing.Net Nessun generatore di payload (Wi-Fi, vCard), formatti manualmente queste stringhe Solo UTF-8, nessuna codifica ISO-8859-2 o Shift JIS Applicazioni server ad alta produttività che generano codici QR su larga scala (ad es. sistemi di biglietteria, generazione di etichette in blocco) dove le prestazioni e l'efficienza della memoria sono le più importanti. Ideale anche se stai già utilizzando SkiaSharp nel tuo progetto. Ideale per: 6. Aspose.BarCode — Suite di codici a barre di livello enterprise per generare codici QR è una libreria commerciale completa che supporta oltre 80 simbologie di codici a barre, inclusi QR Code, Micro QR, Data Matrix, PDF417 e tutti i formati 1D comuni. Fa parte del più ampio ecosistema Aspose utilizzato dalle aziende per l'elaborazione dei documenti. Aspose.BarCode per .NET using Aspose.BarCode.Generation; using Aspose.BarCode.BarCodeRecognition; // Genera var generator = new BarcodeGenerator(EncodeTypes.QR, "https://example.com"); generator.Parameters.Barcode.XDimension.Pixels = 4; generator.Save("aspose-qr.png", BarCodeImageFormat.Png); // Leggi using var reader = new BarCodeReader("aspose-qr.png", DecodeType.QR); foreach (var result in reader.ReadBarCodes())