Puna objava: Mi smo razvojni tim za odnose s kompanijom Iron Software, tvorcem IronQR-a, jedne od biblioteka u ovom poređenju. Ipak, verujemo da iskrene procene svima služe bolje od marketinškog pristupa. Pokazaćemo našu metodologiju, priznati naše pristrasnosti i pustiti kod da govori sam za sebe. Svaku biblioteku za C# QR kodove smo testirali pod identičnim kriterijumima: jednostavno generisanje QR kodova, čitanje QR kodova sa slika, dubina prilagođavanja, podrška za više platformi i troškovi licenciranja. Ispod je rezultat, poređenje 11 značajnih biblioteka za QR kodove u .NET ekosistemu, osmišljeno da vam pomogne da odaberete pravu za svoj projekat iz prvog pokušaja. Evo kako izgledaju tri linije generisanja QR koda sa u Visual Studio-u, jednoj od biblioteka koju ćemo pokriti: IronQR using IronQr; using IronSoftware.Drawing; QrCode qr = QrWriter.Write("https://example.com"); AnyBitmap bitmap = qr.Save(); bitmap.SaveAs("myqr.png"); Primer izlaza QR koda IronQR Ta jednostavnost je osnovni zahtev. Pravo pitanje je šta se dešava kada treba da oštećeni QR kod sa skladišnog skenera, ugradite brendirani logo, ciljate Linux kontejnere ili obradite hiljade kodova u grupnom poslu. Tu se biblioteke razilaze, i tu ovo poređenje zarađuje svoju cenu. pročitate TL;DR: Glavna tabela poređenja Pre nego što zaronimo u detalje, evo potpune slike. Ova tabela prikazuje dimenzije koje su najvažnije pri odabiru QR biblioteke za .NET projekat. Biblioteka Generiši Pročitaj Logo/Stilizacija Mikro QR Više platformi Licenca Preuzimanja sa NuGet-a IronQR ✅ ✅ Pogonjen ML-om ✅ Potpuno ✅ + RMQR ✅ Win/Mac/Linux/Mobilni Komercijalno (749$ +) ~56K QRCoder ✅ ❌ ✅ Umereno ✅ ⚠️ Delimično (System.Drawing) MIT (Besplatno) ~68M ZXing.Net ✅ ✅ ❌ Minimalno ❌ ⚠️ Preko veza Apache 2.0 (Besplatno) ~32M Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (Besplatno) ~4.1M SkiaSharp.QrCode ✅ ❌ ✅ Prilagođeni oblici ❌ ✅ MIT (Besplatno) ~1.2M Aspose.BarCode ✅ ✅ ✅ ✅ ✅ Komercijalno (999$ +) ~5.4M Syncfusion Barcode ✅ ❌ ✅ Umereno ❌ ✅ (UI kontrola) Komercijalno (Besplatna zajednica) ~2M+ Spire.Barcode ✅ ✅ ✅ Ugrađivanje logotipa ❌ ⚠️ (System.Drawing) Komercijalno (599$ +) ~450K IronBarcode ✅ ✅ ✅ ✅ Mikro QR ✅ Win/Mac/Linux Komercijalno (749$ +) ~1.2M Dynamsoft Barcode Reader ❌ ✅ Visokoučinkovito N/A ✅ ✅ Komercijalno (1.249$ + / god) ~250K BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (Besplatno) ~4.5M Tabela 1: Glavno poređenje 11 .NET biblioteka za QR kodove prema ključnim kriterijumima odabira. Broj preuzimanja je približan od početka 2026. godine. Ostatak ovog članka detaljno obrađuje svaki red, sa kodom, kompromisima i iskrenim procenama. Kako smo procenili ove biblioteke? Svaku biblioteku smo procenili prema sedam kriterijuma, ponderisanih prema tome koliko često utiču na odluke o stvarnom odabiru: — Da li može da kreira QR kodove iz stringova, URL-ova i strukturiranih podataka (vCard, Wi-Fi akreditivi)? Generisanje QR kodova — Da li može da dekodira QR kodove sa slika, skeniranih dokumenata ili PDF-ova? Kako rukuje oštećenim ili rotiranim kodovima? Čitanje QR kodova — Ugrađivanje logotipa, kontrola boja, stilizovanje oblika modula, konfiguracija ispravke grešaka Prilagođavanje — Standardni QR, Mikro QR, RMQR (Pravougaoni Mikro QR) Podrška za QR formate — Da li radi glatko na Windows-u, Linux-u, macOS-u i unutar Docker kontejnera bez System.Drawing hakovanja? Više platformi — Otvoreni kod u poređenju sa komercijalnim, cena po programeru, popusti na pakete Licenciranje i cena — Kvalitet API referenci, dostupnost tutorijala, veličina zajednice, aktivno održavanje Dokumentacija i ekosistem Svi primeri koda ciljaju i koriste gornji nivo izjava. Gde .NET 10 uvodi relevantna poboljšanja, to napominjemo. .NET 8 (LTS) Koju QR biblioteku treba da izaberete? Okvir za odlučivanje Preskočite profile 11 biblioteka ispod ako već znate svoja ograničenja. Evo bržeg puta: → ili . Obe su pod MIT licencom. QRCoder ima više renderera i pomoćnih programa za učitavanje podataka; Net.Codecrete je lakši i potpuno izbegava System.Drawing. "Potrebno mi je generisanje QR kodova besplatno, bez zavisnosti." QRCoder Net.Codecrete.QrCodeGenerator → (čitanje pomoću ML-a, najbolja tačnost na oštećenim kodovima), (besplatno, provereno u borbi, najšira podrška za formate) ili (enterprise paket, skupo). "Potrebno mi je i generisanje I čitanje QR kodova." IronQR ZXing.Net Aspose.BarCode → , ili . Sve tri izbegavaju zavisnost od System.Drawing koja ometa primenu na više platformi. "Nastojećemo da primenimo Linux/Docker i ne možemo da koristimo System.Drawing." IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → prednjači u benchmark testovima generisanja. Za performanse čitanja, je specijalizovan za skeniranje velikog protoka. "Performanse i memorijski otisak su kritični." SkiaSharp.QrCode Dynamsoft Barcode Reader → Koristite ono što imate. Dodavanje QR biblioteke drugog dobavljača kada vaš paket već sadrži jednu retko ima smisla iz perspektive licenciranja ili održavanja. "Već koristim Aspose/Syncfusion/Iron Software paket." → ima eksplicitne vodiče za integraciju sa MAUI i Blazor-om. Microsoft MVP Jeff Fritz koristeći IronQR sa Blazor-om, stvarni primer ovog obrasca. "Gradim Blazor/MAUI mobilnu aplikaciju sa skeniranjem QR kodova." IronQR je izgradio aplikaciju za vizit karte zasnovanu na QR kodovima Upoređeno 11 .NET biblioteka za QR kodove 1. IronQR — Čitanje i generisanje QR kodova pomoću ML-a sa podrškom za više platformi IronQR je Iron Software-ova namenska biblioteka za QR kodove, odvojena od njihovog šireg IronBarcode proizvoda. Njena istaknuta karakteristika je model mašinskog učenja (zasnovan na ) koji detektuje i čita QR kodove sa nesavršenih slika, rotiranih, delimično zaklonjenih ili fotografisanih pod čudnim uglovima, često u samo nekoliko redova koda. ONNX Takođe je sposobna da sa lakoćom kreira objekte QR kodova, sa podrškom za stilizovanje QR kodova slikama, dodavanje prilagođenih boja i čuvanje QR slike u različitim izlaznim formatima. Generisanje: using IronQr; using IronSoftware.Drawing; // Generišite stilizovan QR kod sa logom 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"); Izlaz generisanog QR koda IronQR Čitanje: 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}"); Izlaz čitanja IronQR ML model je ono što izdvaja IronQR od svih ostalih biblioteka na ovoj listi. U našem testiranju, uspešno je dekodirao QR kodove sa fotografija bedževa sa konferencija i snimaka ekrana pametnih telefona pod uglom, gde ZXing.Net i osnovni čitači slika nisu vratili ništa. Kompromis je veličina paketa, ONNX model dodaje težinu. Ako vam ne treba čitanje, IronQR.Slim se isporučuje bez ML modela i značajno je lakši. Prednosti: Čitanje pomoću ML-a rukuje oštećenim, rotiranim i delimično zaklonjenim QR kodovima i daje prioritet tačnosti Podržava formate QR koda, Mikro QR i RMQR (Pravougaoni Mikro QR) Potpuni API za stilizovanje: boje, logotipi, zaobljeni moduli, margine Više platformi: Windows, macOS, Linux, iOS, Android, Docker, Azure, AWS Podrška za asinhrono čitanje (ReadAsync) za serverske radne opterećenja Čuvanje u više formata kao što su PNG slika, JPG, TIFF sa više stranica i još mnogo toga API prilagođen korisniku olakšava upotrebu Ograničenja: Potrebna je komercijalna licenca (749$ + po programeru za primenu) Puni paket je teži od opcija otvorenog koda zbog ML modela je niži od zrelih opcija otvorenog koda, noviji proizvod (lansiran ~2023) Broj preuzimanja sa NuGet-a Projekti samo za generisanje možda neće trebati overhead ML-a Projekate kojima je potrebno i generisanje i čitanje, posebno kada uslovi skeniranja nisu savršeni (mobilne aplikacije, skladišno skeniranje, scenariji konferencija/događaja). demonstrira IronQR koji rukuje generisanjem QR kodova u realnom vremenu sa Blazor-om i prilagođenim brendiranjem. Najbolje za: Studija slučaja Jeff Fritz QR vizitkarte 2. — Najpopularniji generator QR kodova otvorenog koda QRCoder QRCoder biblioteka je najpreuzimaniji paket za QR kodove na NuGet-u, sa . Originalno kreiran od strane Raffael Herrmann-a 2013. godine i sada , to je čista C# implementacija fokusirana isključivo na QR kodova (ne i čitanje). preko 68 miliona preuzimanja održavan od strane Shane32 generisanje using QRCoder; // Generiši QR kod i sačuvaj kao PNG bajtove 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); Izlaz QRCoder slike QRCoder pruža više renderera: PngByteQRCode (za više platformi, bez System.Drawing zavisnosti), QRCode (zasnovan na System.Drawing, samo za Windows), SvgQRCode, AsciiQRCode i još mnogo toga. Takođe uključuje generatore učitavanja podataka za strukturirane podatke kao što su Wi-Fi akreditivi, vCard-ovi i bookmark-ovi, što vam štedi ručno formatiranje tih stringova. Prednosti: MIT licenca, potpuno besplatno za komercijalnu upotrebu 68M+ preuzimanja sa NuGet-a, ogromno usvajanje od strane zajednice i dokazana stabilnost Više opcija renderovanja uključujući PngByteQRCode koji izbegava System.Drawing Ugrađeni generatori učitavanja podataka (Wi-Fi, vCard, geolokacija, kalendarski događaji) Podrška za Mikro QR kodove Nula zavisnosti na .NET Standard ciljevima Ograničenja: , ne može da čita niti dekodira fajlove slika QR kodova Samo generisanje Neki rendereri (kao QRCode) zavise od System.Drawing.Common, koji je samo za Windows od .NET 6 Nema ugrađenog ugrađivanja logotipa (sliku biste sami složili) Nema naprednog stilizovanja (oblici modula, gradijenti) Projekate kojima je potrebno samo generisanje QR kodova, posebno kada je budžet nula. Ako treba da generišete QR kodove za Wi-Fi ili vCard-ove i uopšte ne morate da čitate kodove, QRCoder je pragmatičan izbor podrazumevano za većinu .NET programera. Najbolje za: 3. — Švajcarski vojni nož za biblioteke bar kodova ZXing.Net ("Zebra Crossing") je originalne Java ZXing biblioteke. To je univerzalna biblioteka za bar kodove koja podržava preko 15 formata, uključujući QR kod, Data Matrix, Aztec, PDF 417, UPC, EAN, Code 128 i još mnogo toga. Podrška za QR kod je podskup njegovih širih mogućnosti. ZXing.Net port za .NET using ZXing; using ZXing.Common; using ZXing.QrCode; // Generiši QR kod var writer = new BarcodeWriterPixelData { Format = BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Height = 250, Width = 250, Margin = 1 } }; var pixelData = writer.Write("https://example.com"); // Čitanje QR koda zahteva paket za povezivanje (npr. ZXing.Net.Bindings.SkiaSharp) Izlaz ZXing.Net ZXing.Net zahteva pakete za povezivanje specifične za platformu za renderovanje i čitanje. Osnovni paket pruža logiku kodiranja/dekodiranja; dodajete ZXing.Net.Bindings.Windows.Compatibility, ZXing.Net.Bindings.SkiaSharp ili ZXing.Net.Bindings.ImageSharp u zavisnosti od vaše ciljne platforme. Ovaj modularni pristup je fleksibilan, ali dodaje složenost integraciji. Prednosti: Apache 2.0 licenca, besplatno za komercijalnu upotrebu Generisanje i čitanje u jednoj biblioteci Podržava 15+ formata bar kodova pored QR kodova , dokazano u borbi, opšte znanje zajednice 32M+ preuzimanja sa NuGet-a Dostupne veze za SkiaSharp, ImageSharp, OpenCV i još mnogo toga Ograničenja: QR specifične funkcije su osnovne, nema ugrađivanja logotipa, nema naprednog stilizovanja Tačnost čitanja na oštećenim/rotiranim QR kodovima je umerena u poređenju sa rešenjima pokretanim ML-om Paketi za povezivanje dodaju složenost upravljanju zavisnostima Dizajn API-ja pokazuje svoju starost, manje tečan od modernih .NET biblioteka Tempo aktivnog održavanja je usporen (održava zajednica) Projekate kojima je potrebna podrška i za QR kodove i za tradicionalne bar kodove (maloprodaja, logistika) i koji žele besplatnu, proverenu opciju. Ako vam je prioritet QR specifične funkcije kao što su stilizovanje ili čitanje pomoću ML-a, umesto pokrivenosti širokog spektra bar kodova, namensko QR biblioteka će vam bolje služiti. Najbolje za: 4. Net.Codecrete.QrCodeGenerator — Lagan i fokusiran na standarde Net.Codecrete.QrCodeGenerator je čista, minimalna biblioteka za generisanje QR kodova od strane Manuel Bleichenbacher-a. To je , fokusiran na ispravnost i usklađenost sa standardima ( ). prevod Java generatora QR kodova Project Nayuki-a na .NET 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); Primer izlaza sa Net.Codecrete.QrCodeGenerator Sa , dobro je prihvaćena za fokusiranu biblioteku. Njen istaknuti kvalitet je nula zavisnosti od System.Drawing — ona izvorno generiše SVG, XAML podatke o putanji, PNG i BMP. Ovo je čini odličnim izborom za .NET projekte na više platformi i ASP.NET Core servise koji rade u Docker-u. ~4.1 miliona preuzimanja sa NuGet-a Prednosti: MIT licenca, potpuno besplatno Nula System.Drawing zavisnosti, istinski za više platformi Mala veličina, brzo generisanje SVG i XAML izlaz ugrađeni (korisno za WPF, WinUI i web scenarije) Ispravna implementacija svih 40 verzija QR kodova i svih 4 nivoa ispravke grešaka Opsežni primeri projekata (WinForms, WPF, ASP.NET Core, SkiaSharp, ImageSharp) Ograničenja: , nema mogućnost čitanja QR kodova Samo generisanje Nema ugrađivanja logotipa ili naprednih funkcija stilizovanja Ograničeno prilagođavanje u poređenju sa generatorima učitavanja podataka QRCoder-a Manje sadržaja zajednice i tutorijala u poređenju sa QRCoder-om ili ZXing.Net-om Programere kojima je potreban mali, ispravan, QR generator za više platformi sa SVG izlazom i bez System.Drawing prtljaga. Ako je vaša ciljna platforma Linux ili Docker i treba vam samo generisanje, ova biblioteka zaslužuje ozbiljno razmatranje. Najbolje za: 5. SkiaSharp.QrCode — Visokoučinkovito generisanje za više platformi SkiaSharp.QrCode od je biblioteka za generisanje QR kodova fokusirana na performanse, izgrađena na SkiaSharp-u. Kreirana je posebno da izbegne System.Drawing GDI+ ograničenja, istovremeno isporučujući performanse na nivou hardvera kroz hardversku akceleraciju SkiaSharp-a. guitarrapc using SkiaSharp.QrCode.Image; // Jedan red: generiši i sačuvaj QRCodeImageBuilder.SavePng("https://example.com", "qrcode.png"); // Ili sa prilagođenim postavkama var pngBytes = new QRCodeImageBuilder("https://example.com") .WithSize(512, 512) .WithErrorCorrection(ECCLevel.H) .ToByteArray(); Jedan red SkiaSharp.QrCode izlaza Benchmark rezultati iz repozitorijuma projekta pokazuju da SkiaSharp.QrCode nadmašuje QRCoder i druge .NET QR biblioteke u brzini i alokaciji memorije za zadatke generisanja. Postiže renderovanje bez kopiranja direktno na SkiaSharp platno, izbegavajući alokacije međubajfera. Prednosti: MIT licenca, besplatno za komercijalnu upotrebu Vodeće performanse generisanja u klasi (benchmark testirano) Minimalna alokacija memorije, nizak GC pritisak za scenarije visokog protoka Spreman za NativeAOT (.NET Native AOT podrška za kompilaciju)