Potpuno otkrivanje: Mi smo tim za razvojne odnose u Iron Softwareu, kompaniji koja stoji iza IronQR-a, jedne od biblioteka u ovom poređenju. S obzirom na to, vjerujemo da iskreni procjenjivači služe svima bolje od marketinškog spinovanja. Pokazat ćemo našu metodologiju, priznati naše pristranosti i pustiti kod da govori sam za sebe. Svaku C# biblioteku za QR kodove smo prošli kroz identične kriterije evaluacije: jednostavno generisanje QR kodova, čitanje QR kodova sa slika, dubina prilagođavanja, podrška za više platformi i trošak licenciranja. Ispod je rezultat, poređenje 11 značajnih biblioteka za QR kodove u .NET ekosistemu, dizajnirano da vam pomogne da odaberete pravu za svoj projekat iz prve. Evo kako izgledaju tri reda generisanja QR kodova sa u Visual Studio, jednoj od biblioteka koje ćemo pokriti: IronQR using IronQr; using IronSoftware.Drawing; QrCode qr = QrWriter.Write("https://example.com"); AnyBitmap bitmap = qr.Save(); bitmap.SaveAs("myqr.png"); Primjer izlaza QR koda IronQR Ta jednostavnost je osnovni zahtjev. Pravo pitanje je šta se događa kada trebate oštećeni QR kod sa skladišnog skenera, ugraditi brendirani logo, ciljati Linux kontejnere ili obraditi hiljade kodova u batch poslu. Tu se biblioteke razilaze, i tu ovo poređenje zarađuje svoju vrijednost. pročitati TL;DR: Masterska tabela poređenja Prije nego što zaronimo duboko, evo kompletne slike. Ova tabela obuhvata dimenzije koje su najvažnije pri odabiru QR biblioteke za .NET projekat. Biblioteka Generiraj Pročitaj Logo/Stilizacija Mikro QR Više platformi Licenca NuGet preuzimanja IronQR ✅ ✅ Pokreće ML ✅ Potpuno ✅ + RMQR ✅ Win/Mac/Linux/Mobilni Komercijalno (749$) ~56K QRCoder ✅ ❌ ✅ Umjereno ✅ ⚠️ Djelimič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 ✅ ❌ ✅ Umjereno ❌ ✅ (UI kontrola) Komercijalno (Besplatna zajednica) ~2M+ Spire.Barcode ✅ ✅ ✅ Umetanje logoa ❌ ⚠️ (System.Drawing) Komercijalno (599$) ~450K IronBarcode ✅ ✅ ✅ ✅ Mikro QR ✅ Win/Mac/Linux Komercijalno (749$) ~1.2M Dynamsoft Barcode Reader ❌ ✅ Visokih performansi N/A ✅ ✅ Komercijalno (1.249$/god) ~250K BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (Besplatno) ~4.5M Tabela 1: Mastersko poređenje 11 .NET QR kod biblioteka 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 procjenama. Kako smo evaluirali ove biblioteke? Svaku biblioteku smo evaluirali prema sedam kriterija, ponderisanih prema tome koliko često utiču na stvarne odluke o izboru: — Može li kreirati QR kodove iz stringova, URL-ova i strukturiranih podataka (vCard, Wi-Fi akreditivi)? Generisanje QR kodova — Može li dekodirati QR kodove sa slika, skenova ili PDF-ova? Kako se nosi sa oštećenim ili rotiranim kodovima? Čitanje QR kodova — Umetanje logoa, kontrola boja, stilizacija oblika modula, konfiguracija korekcije grešaka Prilagođavanje — Standardni QR, Mikro QR, RMQR (Pravougaoni Mikro QR) Podrška za QR formate — Da li radi čisto na Windows, Linux, macOS i unutar Docker kontejnera bez System.Drawing trikova? Više platformi — Otvoreni kod naspram komercijalnog, cijene po razvojnom programeru, popusti na pakete Licenciranje i cijena — Kvalitet referenci API-ja, dostupnost tutorijala, veličina zajednice, aktivno održavanje Dokumentacija i ekosistem Svi primjeri koda ciljaju i koriste top-level izjave. Gdje .NET 10 uvodi relevantna poboljšanja, mi to napominjemo. .NET 8 (LTS) Koju QR biblioteku odabrati? Okvir za donošenje odluka Preskočite 11 profila biblioteka ispod ako već znate svoja ograničenja. Evo brzog puta: → ili . Oba su licencirana pod MIT licencom. QRCoder ima više renderera i pomoćnika za payload; Net.Codecrete je lakši i potpuno izbjegava System.Drawing. "Trebam besplatno generisati QR kodove bez zavisnosti." QRCoder Net.Codecrete.QrCodeGenerator → (čitanje pokretano ML-om, najbolja tačnost na oštećenim kodovima), (besplatno, dokazano u borbi, najšira podrška za formate), ili (enterprise paket, skup). "Trebam i generisati I čitati QR kodove." IronQR ZXing.Net Aspose.BarCode → , , ili . Sve tri izbjegavaju System.Drawing zavisnost koja narušava multiplatformna raspoređivanja. "Raspoređujem na Linux/Docker i ne mogu koristiti System.Drawing." IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → prednjači u benchmarkovima sirovog generisanja. Za performanse čitanja, je posebno napravljen za skeniranje visokog 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ć uključuje jednu rijetko ima smisla sa stanovišta licenciranja ili održavanja. "Već koristim Aspose/Syncfusion/Iron Software paket." → ima eksplicitne vodiče za integraciju MAUI i Blazor. Microsoft MVP Jeff Fritz koristeći IronQR sa Blazorom, stvarni primjer ovog obrasca. "Pravim Blazor/MAUI mobilnu aplikaciju sa QR skeniranjem." IronQR napravio je aplikaciju za digitalnu vizit kartu zasnovanu na QR kodu Upoređeno 11 .NET QR kod biblioteka 1. IronQR — Čitanje i generisanje QR kodova pokretano ML-om sa podrškom za više platformi IronQR je Iron Software-ova namjenska biblioteka za QR kodove, odvojena od njihovog šireg proizvoda IronBarcode. Njegova istaknuta karakteristika je model mašinskog učenja (baziran na ) koji detektuje i čita QR kodove iz nesavršenih slika, rotiranih, djelimično zaklonjenih ili fotografisanih pod čudnim uglovima, često u samo nekoliko redova koda. ONNX Takođe je sposoban za lako kreiranje QR kod objekata, sa podrškom za stilizovanje QR kodova slikama, dodavanje prilagođenih boja i čuvanje vaše QR slike u različite izlazne formate. Generisanje: using IronQr; using IronSoftware.Drawing; // Generišite stilizovani QR kod sa logoom 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, uspješno je dekodirao QR kodove sa fotografija festivalskih bedževa i snimaka ekrana sa telefona pod uglom, gdje ZXing.Net i osnovni čitači slika nisu vratili ništa. Kompromis je veličina paketa, ONNX model dodaje težinu. Ako vam čitanje nije potrebno, IronQR.Slim se isporučuje bez ML modela i znatno je lakši. Prednosti: Čitanje pokretano ML-om obrađuje oštećene, rotirane i djelimično zaklonjene QR kodove i daje prednost tačnosti Podržava QR Code, Micro QR i RMQR (Pravougaoni Mikro QR) formate Potpuni API za stilizaciju: boje, logoi, zaobljeni moduli, margine Više platformi: Windows, macOS, Linux, iOS, Android, Docker, Azure, AWS Podrška za asinhrono čitanje (ReadAsync) za serverske radne zadatke Čuvanje u više formata kao što su PNG slike, JPG, TIFF sa više stranica i više API prilagođen korisniku olakšava upotrebu Ograničenja: Potrebna komercijalna licenca (749$ po razvojnom programeru za distribuciju) Puni paket je teži od alternativa otvorenog koda zbog ML modela je niži od zrelih opcija otvorenog koda, noviji proizvod (lansiran ~2023) Broj preuzimanja na NuGetu Projekti samo za generisanje možda ne trebaju ML režiju Projekte kojima je potrebno i generisanje i čitanje, posebno tamo gdje uslovi skeniranja nisu savršeni (mobilne aplikacije, skladišno skeniranje, festivalski/događajni scenariji). demonstrira IronQR koji obrađuje generisanje QR kodova u realnom vremenu sa Blazorom i prilagođenim brendiranjem. Najbolje za: Studija slučaja Jeff Fritz QR vizit kartica 2. — Najpopularniji generator QR kodova otvorenog koda QRCoder QRCoder biblioteka je najviše preuzimani paket za QR kodove na NuGetu, sa . Originalno kreiran od strane Raffael Herrmann-a 2013. godine, a sada ga , to je čista C# implementacija fokusirana isključivo na QR kodova (ne čitanje). preko 68 miliona preuzimanja održava Shane32 generisanje using QRCoder; // Generišite QR kod i sačuvajte 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); Slika izlaza QRCoder-a QRCoder pruža više renderera: PngByteQRCode (multiplatformski, bez zavisnosti od System.Drawing), QRCode (baziran na System.Drawing, samo Windows), SvgQRCode, AsciiQRCode i još mnogo toga. Takođe uključuje generatore payload-ova za strukturirane podatke kao što su Wi-Fi akreditivi, vCardovi i bookmarkovi, što vam štedi ručno formatiranje tih stringova. Prednosti: MIT licenca, potpuno besplatno za komercijalnu upotrebu 68M+ preuzimanja na NuGetu, masivno usvajanje od strane zajednice i dokazana stabilnost Više opcija renderera uključujući PngByteQRCode koji izbjegava System.Drawing Ugrađeni generatori payload-ova (Wi-Fi, vCard, geolokacija, kalendarski događaji) Podrška za Micro QR kod Nema zavisnosti od .NET Standard ciljeva Ograničenja: , ne može čitati niti dekodirati QR kodne slikovne datoteke Samo generisanje Neki rendereri (kao QRCode) zavise od System.Drawing.Common, koji je samo za Windows od .NET 6 Nema ugrađenog umetanja logoa (sliku biste sami kompozitovali) Nema naprednog stilizovanja (oblici modula, gradijenti) Projekte kojima je potrebno samo generisanje QR kodova, posebno kada je budžet nula. Ako trebate generisati QR kodove za Wi-Fi ili vCardove i uopšte ne trebate čitati kodove, QRCoder je pragmatičan zadani izbor za većinu .NET programera. Najbolje za: 3. — Švajcarski vojni nož za barcode biblioteke ZXing.Net ("Zebra Crossing") je originalne Java ZXing biblioteke. To je opšta biblioteka za barcode koja podržava preko 15 formata, QR Code, Data Matrix, Aztec, PDF 417, UPC, EAN, Code 128 i više. 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šite 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 zahtijeva paket veza (npr. ZXing.Net.Bindings.SkiaSharp) Izlaz ZXing.Net-a ZXing.Net zahtijeva platformski specifične pakete veza 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 integracije. Prednosti: Apache 2.0 licenca, besplatno za komercijalnu upotrebu Generisanje i čitanje u jednoj biblioteci Podržava 15+ formata bar kodova osim QR kodova , dokazano u borbi, opsežno znanje zajednice 32M+ preuzimanja na NuGetu Dostupne veze za SkiaSharp, ImageSharp, OpenCV i više Ograničenja: QR-specifične funkcije su osnovne, nema umetanja logoa, nema naprednog stilizovanja Tačnost čitanja na oštećenim/rotiranim QR kodovima je umjerena u poređenju sa rješenjima pokretanim ML-om Paketi veza dodaju složenost upravljanja zavisnostima Dizajn API-ja pokazuje svoju starost, manje tečan od modernih .NET biblioteka Tempo aktivnog održavanja je usporen (održava zajednica) Projekte kojima je potrebna podrška za QR kodove i tradicionalne barcode (maloprodaja, logistika) i žele besplatnu, dokazanu opciju. Ako je vaš prioritet QR-specifične funkcije poput stilizovanja ili čitanja pokretanog ML-om, a ne široka pokrivenost formata bar kodova, namjenska 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 Project Nayuki-jevog Java generatora QR kodova, fokusiran na ispravnost i usklađenost sa standardima ( ). port za .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); Primjer izlaza sa Net.Codecrete.QrCodeGenerator-om Sa , dobro je prihvaćena za fokusiranu biblioteku. Njen istaknuti kvalitet je nula zavisnosti od System.Drawing — generiše SVG, XAML podatke o putanji, PNG i BMP izvorno. Ovo je čini odličnim izborom za multiplatformne .NET projekte i ASP.NET Core usluge koje rade u Docker-u. ~4.1 miliona preuzimanja na NuGetu Prednosti: MIT licenca, potpuno besplatno Nema System.Drawing zavisnosti, istinski multiplatformski Mali otisak, 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 korekcije grešaka Opsežni primjeri projekata (WinForms, WPF, ASP.NET Core, SkiaSharp, ImageSharp) Ograničenja: , nema mogućnosti čitanja QR kodova Samo generisanje Nema funkcija umetanja logoa ili naprednog stilizovanja Ograničeno prilagođavanje u poređenju sa generatorima payload-ova QRCoder-a Manje sadržaja i tutorijala od QRCoder-a ili ZXing.Net-a Razvojne programere kojima je potreban mali, ispravan, multiplatformski generator QR kodova sa SVG izlazom i bez System.Drawing opterećenja. Ako je vaša ciljna platforma Linux ili Docker i trebate samo generisanje, ova biblioteka zaslužuje ozbiljnu pažnju. Najbolje za: 5. SkiaSharp.QrCode — Visokoperformatno generisanje za više platformi SkiaSharp.QrCode od strane je biblioteka za generisanje QR kodova fokusirana na performanse, izgrađena na SkiaSharp-u. Kreirana je specifično da izbjegne GDI+ ograničenja System.Drawing-a, istovremeno isporučujući performanse na nivou hardvera kroz hardversku akceleraciju SkiaSharp-a. guitarrapc using SkiaSharp.QrCode.Image; // Jedan red: generišite i sačuvajte QRCodeImageBuilder.SavePng("https://example.com", "qrcode.png"); // Ili sa prilagođenim podešavanjima var pngBytes = new QRCodeImageBuilder("https://example.com") .WithSize(512, 512) .WithErrorCorrection(ECCLevel.H) .ToByteArray(); Izlaz jednog reda SkiaSharp.QrCode-a Rezultati benchmarka 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, izbjegavajući alokacije međupremještaja. Prednosti: MIT licenca, besplatno za komercijalnu upotrebu Najbolje performanse generisanja u klasi (benchmarkovano) Minimalna alokacija memorije, nizak GC pritisak za scenarije visokog protoka Spreman za NativeAOT (podrška za .NET Native AOT kompilaciju) Prilagođeni oblici modula (krugovi, zaobljeni pravougaonici) za stilizovane QR kodove Radi na Windows, Linux, macOS, iOS, Android, WebAssembly