Divulgare completă: Noi suntem echipa de relații cu dezvoltatorii de la Iron Software, compania din spatele IronQR, una dintre bibliotecile din această comparație. Acestea fiind spuse, credem că evaluările sincere servesc pe toată lumea mai bine decât marketingul. Vom prezenta metodologia noastră, vom recunoaște prejudecățile noastre și vom lăsa codul să vorbească de la sine. Am aplicat fiecărei biblioteci C# pentru coduri QR criterii identice de evaluare: generare simplă de coduri QR, citire de coduri QR din imagini, profunzimea personalizării, suport multiplatformă și costul licenței. Mai jos este rezultatul, o comparație a 11 biblioteci notabile de coduri QR din ecosistemul .NET, concepută pentru a vă ajuta să o alegeți pe cea potrivită pentru proiectul dumneavoastră din prima încercare. Iată cum arată trei linii de generare de coduri QR cu în Visual Studio, una dintre bibliotecile pe care le vom acoperi: IronQR using IronQr; using IronSoftware.Drawing; QrCode qr = QrWriter.Write("https://example.com"); AnyBitmap bitmap = qr.Save(); bitmap.SaveAs("myqr.png"); Exemplu de ieșire a codului QR IronQR Această simplitate este standardul. Întrebarea reală este ce se întâmplă când trebuie să un cod QR deteriorat dintr-un scaner de depozit, să încorporați un logo de marcă, să țintiți containere Linux sau să procesați mii de coduri într-un job de lot. Aici bibliotecile diverg, și aici această comparație își merită efortul. citiți Pe scurt: Tabelul Master de Comparație Înainte de a intra în detalii, iată imaginea de ansamblu. Acest tabel surprinde dimensiunile care contează cel mai mult atunci când selectați o bibliotecă QR pentru un proiect .NET. Bibliotecă Generare Citire Logo/Stilizare Micro QR Multiplatformă Licență Descărcări NuGet IronQR ✅ ✅ Bazat pe ML ✅ Complet ✅ + RMQR ✅ Win/Mac/Linux/Mobil Comercial (749$+) ~56K QRCoder ✅ ❌ ✅ Moderat ✅ ⚠️ Parțial (System.Drawing) MIT (Gratuit) ~68M ZXing.Net ✅ ✅ ❌ Minimal ❌ ⚠️ Prin legături Apache 2.0 (Gratuit) ~32M Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (Gratuit) ~4.1M SkiaSharp.QrCode ✅ ❌ ✅ Forme personalizate ❌ ✅ MIT (Gratuit) ~1.2M Aspose.BarCode ✅ ✅ ✅ ✅ ✅ Comercial (999$+) ~5.4M Syncfusion Barcode ✅ ❌ ✅ Moderat ❌ ✅ (control UI) Comercial (Comunitate gratuită) ~2M+ Spire.Barcode ✅ ✅ ✅ Încorporare logo ❌ ⚠️ (System.Drawing) Comercial (599$+) ~450K IronBarcode ✅ ✅ ✅ ✅ Micro QR ✅ Win/Mac/Linux Comercial (749$+) ~1.2M Dynamsoft Barcode Reader ❌ ✅ Performanță înaltă N/A ✅ ✅ Comercial (1.249$+ / an) ~250K BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (Gratuit) ~4.5M Tabelul 1: Comparație principală a 11 biblioteci .NET pentru coduri QR pe criterii cheie de selecție. Numărul de descărcări este aproximativ la începutul anului 2026. Restul acestui articol analizează fiecare rând, cu coduri, compromisuri și evaluări sincere. Cum am evaluat aceste biblioteci? Am evaluat fiecare bibliotecă în raport cu șapte criterii, ponderate în funcție de cât de des influențează deciziile reale de selecție: — Poate crea coduri QR din șiruri de caractere, URL-uri și date structurate (vCards, credențiale Wi-Fi)? Generare de coduri QR — Poate decoda coduri QR din imagini, scanări sau PDF-uri? Cum gestionează codurile deteriorate sau rotite? Citire de coduri QR — Încorporarea logo-ului, controlul culorilor, stilizarea formelor modulelor, configurarea corecției erorilor Personalizare — QR standard, Micro QR, RMQR (Micro QR rectangular) Suport format QR — Rulează curat pe Windows, Linux, macOS și în containere Docker fără trucuri System.Drawing? Multiplatformă — Open-source vs. comercial, prețuri per dezvoltator, reduceri pentru suite Licențiere și cost — Calitatea referinței API, disponibilitatea tutorialelor, dimensiunea comunității, mentenanță activă Documentație și ecosistem Toate exemplele de cod vizează și folosesc instrucțiuni de nivel superior. Acolo unde .NET 10 introduce îmbunătățiri relevante, le vom nota. .NET 8 (LTS) Ce bibliotecă QR ar trebui să alegeți? Un cadru de decizie Săriți peste cele 11 profiluri de biblioteci de mai jos dacă deja vă cunoașteți constrângerile. Iată calea rapidă: → sau . Ambele sunt licențiate MIT. QRCoder are mai multe randere și ajutoare de payload; Net.Codecrete este mai ușor și evită complet System.Drawing. „Trebuie să generez coduri QR gratuit, fără dependențe.” QRCoder Net.Codecrete.QrCodeGenerator → (citire bazată pe ML, cea mai bună acuratețe pe coduri deteriorate), (gratuit, testat în luptă, cel mai larg suport de formate) sau (suită enterprise, scumpă). „Trebuie atât să generez, CÂT ȘI să citesc coduri QR.” IronQR ZXing.Net Aspose.BarCode → , sau . Toate cele trei evită dependența System.Drawing care încalcă implementările multiplatformă. „Implementez pe Linux/Docker și nu pot folosi System.Drawing.” IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → conduce în benchmark-urile brute de generare. Pentru performanța de citire, este conceput special pentru scanare de înaltă performanță. „Performanța și amprenta de memorie sunt critice.” SkiaSharp.QrCode Dynamsoft Barcode Reader → Folosiți ce aveți. Adăugarea bibliotecii QR a unui alt furnizor când suita dvs. include deja una rareori are sens din perspectiva licențierii sau a mentenanței. „Folosesc deja o suită Aspose/Syncfusion/Iron Software.” → are ghiduri explicite de integrare MAUI și Blazor. MVP-ul Microsoft Jeff Fritz folosind IronQR cu Blazor, un exemplu real al acestui model exact. „Construiesc o aplicație mobilă Blazor/MAUI cu scanare QR.” IronQR a construit o aplicație de carduri de vizită digitale bazată pe QR Cele 11 biblioteci .NET pentru coduri QR comparate 1. IronQR — Citire și generare de coduri QR bazată pe ML cu suport multiplatformă IronQR este biblioteca dedicată de coduri QR de la Iron Software, separată de produsul lor mai larg IronBarcode. Caracteristica sa distinctivă este un model de inteligență artificială (bazat pe ) care detectează și citește coduri QR din imagini imperfecte, rotite, parțial ascunse sau fotografiate din unghiuri ciudate, adesea în doar câteva linii de cod. ONNX Este, de asemenea, capabil să creeze cu ușurință obiecte de cod QR, cu suport pentru stilizarea codurilor QR cu imagini, adăugarea de culori personalizate și salvarea imaginii QR în diferite formate de ieșire. Generare: using IronQr; using IronSoftware.Drawing; // Generați un cod QR stilizat cu 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"); Ieșirea codului QR generat IronQR Citire: 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}"); Ieșire citire IronQR Modelul ML este ceea ce diferențiază IronQR de toate celelalte biblioteci de pe această listă. În testele noastre, a decodat cu succes coduri QR din fotografii de ecusoane de conferință și capturi de ecran înclinate ale smartphone-urilor unde ZXing.Net și cititoarele de imagini de bază nu au returnat nimic. Compromisul este dimensiunea pachetului, modelul ONNX adaugă greutate. Dacă nu aveți nevoie de citire, IronQR.Slim este livrat fără modelul ML și este semnificativ mai ușor. Puncte forte: Citirea bazată pe ML gestionează codurile QR deteriorate, rotite și parțial ascunse și prioritizează acuratețea Suportă formatele QR Code, Micro QR și RMQR (Micro QR rectangular) API complet de stilizare: culori, logo-uri, module rotunjite, margini Multiplatformă: Windows, macOS, Linux, iOS, Android, Docker, Azure, AWS Suport pentru citire asincronă (ReadAsync) pentru sarcini de lucru pe server Salvare în mai multe formate, cum ar fi imagine PNG, JPG, TIFF multi-pagină și altele API-ul ușor de utilizat îl face simplu de utilizat Limitări: Necesită licență comercială (749$+ per dezvoltator pentru implementare) Pachetul complet este mai greu decât alternativele open-source datorită modelului ML este mai mic decât opțiunile open-source mature (produs mai nou, lansat ~2023) Numărul de descărcări NuGet Proiectele doar pentru generare s-ar putea să nu aibă nevoie de suprasolicitarea ML Proiecte care necesită atât generare, cât și citire, în special acolo unde condițiile de scanare sunt imperfecte (aplicații mobile, scanare depozit, scenarii de conferințe/evenimente). demonstrează IronQR gestionând generarea de coduri QR în timp real cu Blazor și personalizarea. Cel mai bun pentru: Studiul de caz al cardului de vizită QR al lui Jeff Fritz 2. — Cel mai popular generator QR open-source QRCoder Biblioteca QRCoder este cel mai descărcat pachet de coduri QR de pe NuGet, cu . Creată inițial de Raffael Herrmann în 2013 și acum , este o implementare pură C# axată exclusiv pe codurilor QR (nu pe citire). peste 68 de milioane de descărcări întreținută de Shane32 generarea using QRCoder; // Generați un cod QR și salvați ca octeți 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); Imagine de ieșire QRCoder QRCoder oferă mai multe randere: PngByteQRCode (multiplatformă, fără dependență System.Drawing), QRCode (bazat pe System.Drawing, doar Windows), SvgQRCode, AsciiQRCode și altele. Include, de asemenea, generatoare de payload pentru date structurate, cum ar fi credențiale Wi-Fi, vCards și marcaje, ceea ce vă scutește de formatarea manuală a acestor șiruri. Puncte forte: Licență MIT, complet gratuită pentru uz comercial Peste 68 de milioane de descărcări NuGet, adopție masivă în comunitate și stabilitate dovedită Opțiuni multiple de randare, inclusiv PngByteQRCode, care evită System.Drawing Generatoare de payload integrate (Wi-Fi, vCard, geolocație, evenimente calendaristice) Suport pentru coduri Micro QR Zero dependențe pe țintele .NET Standard Limitări: , nu poate citi sau decoda fișiere imagine cu coduri QR Doar generare Unele randere (cum ar fi QRCode) depind de System.Drawing.Common, care este doar pentru Windows începând cu .NET 6 Fără încorporare de logo integrată (ar trebui să compuneți imaginea manual) Fără stilizare avansată (forme ale modulelor, gradiente) Proiecte care necesită doar generare de coduri QR, în special atunci când bugetul este zero. Dacă aveți nevoie să generați coduri QR Wi-Fi sau vCards și nu aveți nevoie deloc să citiți coduri, QRCoder este alegerea pragmatică implicită pentru majoritatea dezvoltatorilor .NET. Cel mai bun pentru: 3. — Swiss Army Knife al bibliotecilor de coduri de bare ZXing.Net („Zebra Crossing”) este al bibliotecii originale ZXing Java. Este o bibliotecă de scop general pentru coduri de bare, care suportă peste 15 formate, QR Code, Data Matrix, Aztec, PDF 417, UPC, EAN, Code 128 și altele. Suportul pentru QR este un subset al capabilităților sale mai largi. ZXing.Net portul .NET using ZXing; using ZXing.Common; using ZXing.QrCode; // Generați un cod 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"); // Citirea unui cod QR necesită un pachet de legături (ex: ZXing.Net.Bindings.SkiaSharp) Ieșire ZXing.Net ZXing.Net necesită pachete de legături specifice platformei pentru randare și citire. Pachetul de bază oferă logica de codificare/decodificare; adăugați ZXing.Net.Bindings.Windows.Compatibility, ZXing.Net.Bindings.SkiaSharp sau ZXing.Net.Bindings.ImageSharp în funcție de platforma țintă. Această abordare modulară este flexibilă, dar adaugă complexitate de integrare. Puncte forte: Licență Apache 2.0, gratuită pentru uz comercial Generare și citire într-o singură bibliotecă Suportă peste 15 formate de coduri de bare, pe lângă codurile QR , testat în luptă, cunoștințe extinse în comunitate Peste 32 de milioane de descărcări NuGet Legături disponibile pentru SkiaSharp, ImageSharp, OpenCV și altele Limitări: Caracteristicile specifice QR sunt de bază, fără încorporare de logo, fără stilizări avansate Acuratețea citirii pe coduri QR deteriorate/rotite este moderată comparativ cu soluțiile bazate pe ML Pachetele de legături adaugă complexitate de gestionare a dependențelor Designul API-ului arată vechi, mai puțin fluent decât bibliotecile .NET moderne Ritmul de mentenanță activă a încetinit (întreținut de comunitate) Proiecte care necesită atât coduri QR, cât și coduri de bare tradiționale (retail, logistică) și doresc o opțiune gratuită și dovedită. Dacă prioritatea dvs. sunt caracteristicile specifice QR, cum ar fi stilizarea sau citirea bazată pe ML, mai degrabă decât acoperirea largă a formatelor de coduri de bare, o bibliotecă QR dedicată vă va servi mai bine. Cel mai bun pentru: 4. Net.Codecrete.QrCodeGenerator — Ușor și axat pe standarde Net.Codecrete.QrCodeGenerator este o bibliotecă de generare de coduri QR curată și minimă de Manuel Bleichenbacher. Este un , axat pe corectitudine și conformitate cu standardele ( ). port .NET al generatorului de coduri QR Java al Proiectului 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); Exemplu de ieșire cu Net.Codecrete.QrCodeGenerator Cu , este bine adoptat pentru o bibliotecă concentrată. Calitatea sa distinctivă este lipsa dependențelor de System.Drawing — generează nativ SVG, date de cale XAML, PNG și BMP. Acest lucru îl face o alegere excelentă pentru proiecte .NET multiplatformă și servicii ASP.NET Core care rulează în Docker. ~4.1 milioane de descărcări NuGet Puncte forte: Licență MIT, complet gratuită Zero dependență System.Drawing, cu adevărat multiplatformă Amprentă mică, generare rapidă Ieșire SVG și XAML integrată (utilă pentru scenarii WPF, WinUI și web) Implementare corectă a tuturor celor 40 de versiuni QR și a tuturor celor 4 niveluri de corecție a erorilor Proiecte extinse de exemplu (WinForms, WPF, ASP.NET Core, SkiaSharp, ImageSharp) Limitări: , fără capacitate de citire QR Doar generare Fără încorporare de logo sau caracteristici de stilizare avansată Personalizare limitată comparativ cu generatoarele de payload ale QRCoder Mai puțin conținut comunitar și tutoriale comparativ cu QRCoder sau ZXing.Net Dezvoltatorii care au nevoie de un generator QR mic, corect, multiplatformă, cu ieșire SVG și fără bagajul System.Drawing. Dacă ținta dvs. de implementare este Linux sau Docker și aveți nevoie doar de generare, această bibliotecă merită o atenție deosebită. Cel mai bun pentru: 5. SkiaSharp.QrCode — Generare multiplatformă de înaltă performanță SkiaSharp.QrCode de la este o bibliotecă de generare de coduri QR axată pe performanță, construită pe SkiaSharp. A fost creată special pentru a evita limitările GDI+ ale System.Drawing, oferind în același timp performanță la nivel nativ prin accelerarea hardware a SkiaSharp. guitarrapc using SkiaSharp.QrCode.Image; // O singură linie: generați și salvați QRCodeImageBuilder.SavePng("https://example.com", "qrcode.png"); // Sau cu setări personalizate var pngBytes = new QRCodeImageBuilder("https://example.com") .WithSize(512, 512) .WithErrorCorrection(ECCLevel.H) .ToByteArray(); Ieșire cu o singură linie SkiaSharp.QrCode Rezultatele benchmark-urilor din repository-ul proiectului arată că SkiaSharp.QrCode depășește QRCoder și alte biblioteci .NET QR în ceea ce privește viteza și alocarea memoriei pentru sarcinile de generare. Realizează randare zero-copy direct pe canvasul SkiaSharp, evitând alocările intermediare de buffere. Puncte forte: Licență MIT, gratuită pentru uz comercial Performanță de generare de top (benchmark-uri) Alocare minimă de memorie, presiune redusă asupra GC pentru scenarii de înaltă performanță Pregătit pentru NativeAOT (suport pentru compilarea .NET Native AOT) Forme ale modulelor personalizate (cercuri, dreptunghiuri rotunjite) pentru coduri QR stilizate Funcționează pe Windows, Linux, macOS, iOS, Android, WebAssembly Limitări: , fără citire QR Doar generare Necesită dependențe native SkiaSharp (pachete NuGet specifice platformei) Comunitate mai mică decât QRCoder sau ZXing