Puno оtkrivanje: Mi smo tim za razvoj odnosa u Iron Software-u, kompaniji koja stoji iza IronQR-a, jedne od biblioteka u ovom poređenju. Ipak, verujemo da iskrene procene svima služe bolje od marketinškog spinovanja. Pokazaćemo našu metodologiju, priznati naše pristrasnosti i pustiti kod da govori sam za sebe. Svaku C# QR kod biblioteku smo prošli kroz identične kriterijume evaluacije: jednostavno generisanje QR kodova, čitanje QR kodova iz slika, dubinu prilagođavanja, podršku za više platformi i cenu licenci. Ispod je rezultat, poređenje 11 značajnih QR kod biblioteka u .NET ekosistemu, dizajniranih da vam pomognu da odaberete pravu za vaš projekat iz prvog pokušaja. Evo kako izgledaju tri reda generisanja QR kodova 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ćen QR kod sa skenera u magacinu, ugradite brendirani logo, ciljate Linux kontejnere ili procesirate hiljade kodova u batch poslu. Tu se biblioteke razilaze, i tu ovo poređenje opravdava svoj trud. pročitate TL;DR: Glavna tabela poređenja Pre nego što zaronimo duboko, evo cele slike. Ova tabela obuhvata dimenzije koje su najvažnije pri odabiru QR biblioteke za .NET projekat. Biblioteka Generiši Čitaj Logo/Stilizacija Micro QR Više platformi Licenca Preuzimanja sa NuGet-a IronQR ✅ ✅ Pokreće se pomoću ML-a ✅ Puno ✅ + RMQR ✅ Win/Mac/Linux/Mobilni Komercijalno (749$+) ~56 hiljada QRCoder ✅ ❌ ✅ Umereno ✅ ⚠️ Delimično (System.Drawing) MIT (Besplatno) ~68 miliona ZXing.Net ✅ ✅ ❌ Minimalno ❌ ⚠️ Preko veza Apache 2.0 (Besplatno) ~32 miliona Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (Besplatno) ~4.1 miliona SkiaSharp.QrCode ✅ ❌ ✅ Prilagođeni oblici ❌ ✅ MIT (Besplatno) ~1.2 miliona Aspose.BarCode ✅ ✅ ✅ ✅ ✅ Komercijalno (999$+) ~5.4 miliona Syncfusion Barcode ✅ ❌ ✅ Umereno ❌ ✅ (UI kontrola) Komercijalno (Besplatna zajednica) ~2 miliona+ Spire.Barcode ✅ ✅ ✅ Ugrađen logo ❌ ⚠️ (System.Drawing) Komercijalno (599$+) ~450 hiljada IronBarcode ✅ ✅ ✅ ✅ Mikro QR ✅ Win/Mac/Linux Komercijalno (749$+) ~1.2 miliona Dynamsoft Barcode Reader ❌ ✅ Visoke performanse N/A ✅ ✅ Komercijalno (1,249$+ godišnje) ~250 hiljada BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (Besplatno) ~4.5 miliona Tabela 1: Glavno 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 razlaže svaki red, sa kodom, kompromisima i iskrenim procenama. Kako smo evaluirali ove biblioteke? Svaku biblioteku smo procenili prema sedam kriterijuma, ponderisanih prema tome koliko često oni utiču na odluke o izboru u stvarnom svetu: — Da li može da kreira QR kodove iz stringova, URL-ova i strukturiranih podataka (vCard-ovi, Wi-Fi akreditivi)? Generisanje QR kodova — Da li može da dekodira QR kodove iz slika, skeniranja ili PDF-ova? Kako se nosi sa oštećenim ili rotiranim kodovima? Čitanje QR kodova — Ugrađivanje logotipa, kontrola boja, stilizovanje oblika modula, konfiguracija nivoa ispravljanja grešaka Prilagođavanje — Standardni QR, Mikro QR, RMQR (Pravougaoni Mikro QR) Podrška za QR formate — Da li radi nesmetano na Windows-u, Linux-u, macOS-u i unutar Docker kontejnera bez trikova sa System.Drawing-om? Više platformi — Otvoreni izvor naspram komercijalnog, cena po razvijaču, popusti na pakete Licenciranje i cena — Kvalitet referenci API-ja, dostupnost tutorijala, veličina zajednice, aktivno održavanje Dokumentacija i ekosistem Svi primeri koda ciljaju i koriste izjave najvišeg nivoa. Tamo gde .NET 10 uvodi relevantna poboljšanja, napominjemo ih. .NET 8 (LTS) Koju QR biblioteku treba da izaberete? Okvir za odlučivanje Preskočite 11 profila biblioteka ispod ako već znate svoja ograničenja. Evo bržeg puta: → ili . Obe su licencirane MIT licencom. QRCoder ima više rendera i pomoćnih funkcija za učitavanje podataka; Net.Codecrete je lakši i potpuno izbegava System.Drawing. "Potrebno mi je da generišem QR kodove besplatno, bez zavisnosti." QRCoder Net.Codecrete.QrCodeGenerator → (čitanje pomoću ML-a, najbolja tačnost na oštećenim kodovima), (besplatno, provereno u praksi, najšira podrška za formate) ili (enterprise paket, skup). "Potrebno mi je i generisanje I čitanje QR kodova." IronQR ZXing.Net Aspose.BarCode → , ili . Sve tri izbegavaju zavisnost od System.Drawing-a koja narušava implementaciju na više platformi. "Implementiram na Linux/Docker i ne mogu da koristim System.Drawing." IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → prednjači u benchmarkovima za generisanje. Za performanse čitanja, je namenjen za skeniranje visoke propusnosti. "Performanse i iskorišćenost memorije 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 retko ima smisla sa stanovišta licenciranja ili održavanja. "Već koristim Aspose/Syncfusion/Iron Software paket." → ima eksplicitne vodiče za integraciju sa MAUI i Blazor. Microsoft MVP Džef Fric koristeći IronQR sa Blazor-om, primer iz stvarnog sveta ovog tačnog obrasca. "Gradim Blazor/MAUI mobilnu aplikaciju sa skeniranjem QR kodova." IronQR napravio je aplikaciju za vizit karte zasnovanu na QR kodovima 11 .NET QR kod biblioteka upoređenih 1. IronQR — Čitanje i generisanje QR kodova koje pokreće ML sa podrškom za više platformi IronQR je namenska QR kod biblioteka Iron Software-a, odvojena od njihovog šireg IronBarcode proizvoda. Njena izvanredna karakteristika je model mašinskog učenja (zasnovan na ) koji detektuje i čita QR kodove iz 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čite izlazne formate. Generisanje: using IronQr; using IronSoftware.Drawing; // Generisanje stilizovanog QR koda 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 generisan od strane 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 znački sa konferencija i snimaka ekrana 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 čitanje nije potrebno, 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 prioritet daje tačnosti Podržava QR Code, Micro QR i RMQR (Pravougaoni Micro QR) formate 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 zadatke Čuvanje u više formata kao što su PNG slike, 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 razvojnom inženjeru za implementaciju) 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 sa NuGet-a Projekti samo za generisanje možda ne zahtevaju ML režiju Projekte kojima je potrebno i generisanje i čitanje, posebno kada su uslovi skeniranja nesavršeni (mobilne aplikacije, skeniranje u magacinu, scenariji konferencija/događaja). demonstrira IronQR koji obrađuje generisanje QR kodova u realnom vremenu sa Blazor-om i prilagođenim brendiranjem. Najbolje za: Studija slučaja Džefa Frica za vizit karte sa QR kodovima 2. — Najpopularniji generator QR kodova otvorenog koda QRCoder QRCoder biblioteka je najpreuzimaniji paket za QR kodove na NuGet-u, sa . Originalno kreiran od strane Rafaela Herrmanna 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; // Generisanje QR koda i čuvanje kao PNG bajtova 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 rendera: PngByteQRCode (više platformi, bez zavisnosti od System.Drawing), 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 linkovi, što vam štedi ručno formatiranje tih stringova. Prednosti: MIT licenca, potpuno besplatna za komercijalnu upotrebu 68 miliona+ preuzimanja sa NuGet-a, masovno usvajanje od strane zajednice i dokazana stabilnost Opcije za više rendera 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 Nulte zavisnosti od .NET Standard ciljeva Ograničenja: , ne može čitati niti dekodirati fajlove slika sa QR kodovima Samo generisanje Neki renderi (kao QRCode) zavise od System.Drawing.Common, koji je samo za Windows od .NET 6 Nema ugrađenog ugrađivanja logotipa (sliku biste komponovali sami) Nema naprednog stilizovanja (oblici modula, gradijenti) Projekte kojima je potrebno samo generisanje QR kodova, posebno kada je budžet nula. Ako treba da generišete Wi-Fi QR kodove ili vCard-ove i uopšte ne treba da čitate kodove, QRCoder je pragmatičan izbor podrazumevano za većinu .NET programera. Najbolje za: 3. — Švajcarski army knife biblioteka za barkodove ZXing.Net ("Zebra Crossing") je originalne Java ZXing biblioteke. To je opšta biblioteka za barkodove koja podržava preko 15 formata, QR kod, Data Matrix, Aztec, PDF 417, UPC, EAN, Code 128 i još mnogo toga. Podrška za QR kod je podskup njenih širih mogućnosti. ZXing.Net port za .NET using ZXing; using ZXing.Common; using ZXing.QrCode; // Generisanje QR koda 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 veza (npr. ZXing.Net.Bindings.SkiaSharp) Izlaz ZXing.Net ZXing.Net zahteva pakete veza 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 integracije. Prednosti: Apache 2.0 licenca, besplatna za komercijalnu upotrebu Generisanje i čitanje u jednoj biblioteci Podržava 15+ formata barkodova pored QR kodova , provereno u praksi, opsežno znanje zajednice 32 miliona+ 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 koja pokreće ML Paketi veza dodaju složenost upravljanja zavisnostima Dizajn API-ja pokazuje svoju starost, manje tečan nego modernije .NET biblioteke Pace aktivnog održavanja je usporen (održavano od strane zajednice) Projekte kojima je potrebna podrška za QR kodove i tradicionalne barkodove (maloprodaja, logistika) i žele besplatnu, proverenu opciju. Ako vam je prioritet QR-specifične funkcije kao što su stilizovanje ili čitanje pomoću ML-a, a ne široka pokrivenost formata barkodova, namenska 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 Manuela Bleichenbachera. To je , fokusiran na ispravnost i usklađenost sa standardima ( ). .NET prevod Java generatora QR kodova 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); Primer izlaza sa Net.Codecrete.QrCodeGenerator Sa , dobro je prihvaćen za fokusiranu biblioteku. Njegov izvanredan kvalitet je nulta zavisnost od System.Drawing — generiše SVG, XAML podatke putanje, PNG i BMP izvorno. Ovo ga čini odličnim izborom za .NET projekte na više platformi i ASP.NET Core usluge koje rade u Docker-u. ~4.1 milion preuzimanja sa NuGet-a Prednosti: MIT licenca, potpuno besplatna Nulta zavisnost od System.Drawing, istinski više platformi Mala veličina, brzo generisanje SVG i XAML izlaz ugrađeni (korisno za WPF, WinUI i veb scenarije) Ispravna implementacija svih 40 verzija QR kodova i svih 4 nivoa ispravljanja grešaka Obimni primeri projekata (WinForms, WPF, ASP.NET Core, SkiaSharp, ImageSharp) Ograničenja: , nema mogućnosti č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 i tutorijala u zajednici u poređenju sa QRCoder-om ili ZXing.Net-om Programere kojima je potreban mali, ispravan generator QR kodova za više platformi sa SVG izlazom i bez tereta System.Drawing-a. Ako je vaša ciljna platforma Linux ili Docker, a potrebno vam je samo generisanje, ova biblioteka zaslužuje ozbiljno razmatranje. Najbolje za: 5. SkiaSharp.QrCode — Visokoperformatno generisanje na više platformi SkiaSharp.QrCode od strane je generator QR kodova fokusiran na performanse, izgrađen na SkiaSharp-u. Kreiran je posebno da izbegne 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 postavkama var pngBytes = new QRCodeImageBuilder("https://example.com") .WithSize(512, 512) .WithErrorCorrection(ECCLevel.H) .ToByteArray(); Jedan red izlaza SkiaSharp.QrCode Rezultati benchmarkova 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đubajferskih memorija. Prednosti: MIT licenca, besplatna za