Volledige openheid: Ons is die ontwikkelaarsverhoudingspan by Iron Software, die maatskappy agter IronQR, een van die biblioteke in hierdie vergelyking. Dit gesê, ons glo eerlike evaluasies dien almal beter as bemarkingdraaiing. Ons sal ons metodologie wys, ons vooroordele erken en die kode vir homself laat spreek. Ons het elke C#-QR-kodelisensie deur identiese evaluasiekriteria laat loop: eenvoudige QR-generasie, QR-lees uit beelde, aanpassingdiepte, kruisplatformondersteuning en lisensiekoste. Hieronder is die resultaat, 'n vergelyking van 11 noemenswaardige QR-kodelisensies in die .NET-ekosisteem, ontwerp om u te help om die regte een vir u projek met die eerste probeerslag te kies. Hier is hoe drie reëls van QR-generasie lyk met in Visual Studio, een van die biblioteke wat ons sal dek: IronQR using IronQr; using IronSoftware.Drawing; QrCode qr = QrWriter.Write("https://example.com"); AnyBitmap bitmap = qr.Save(); bitmap.SaveAs("myqr.png"); IronQR Voorbeeld QR-kode Uitset Daardie eenvoud is basies. Die regte vraag is wat gebeur wanneer u 'n beskadigde QR-kode vanaf 'n wisselkoersskandeerder moet , 'n handelsmerklogo moet insluit, Linux-houers moet teiken, of duisende kodes in 'n bondelwerk moet verwerk. Dit is waar lisensies verskil, en waar hierdie vergelyking sy waarde bewys. lees Die TL;DR: Meester Vergelykingstabel Voordat ons diep duik, hier is die volledige prentjie. Hierdie tabel vang die afmetings vas wat die meeste saak maak wanneer 'n QR-lisensie vir 'n .NET-projek gekies word. Lisensie Genereer Lees Logo/Styling Mikro QR Kruisplatform Lisensie NuGet Downloads IronQR ✅ ✅ ML-aangedrewe ✅ Vol ✅ + RMQR ✅ Wen/Mac/Linux/Mobiel Komeriseel ($749+) ~56K QRCoder ✅ ❌ ✅ Matig ✅ ⚠️ Gedeeltelik (System.Drawing) MIT (Gratis) ~68M ZXing.Net ✅ ✅ ❌ Minimaal ❌ ⚠️ Via bindings Apache 2.0 (Gratis) ~32M Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (Gratis) ~4.1M SkiaSharp.QrCode ✅ ❌ ✅ Pasgemaakte vorms ❌ ✅ MIT (Gratis) ~1.2M Aspose.BarCode ✅ ✅ ✅ ✅ ✅ Komeriseel ($999+) ~5.4M Syncfusion Barcode ✅ ❌ ✅ Matig ❌ ✅ (UI beheer) Komeriseel (Gratis gemeenskap) ~2M+ Spire.Barcode ✅ ✅ ✅ Logo inbed ❌ ⚠️ (System.Drawing) Komeriseel ($599+) ~450K IronBarcode ✅ ✅ ✅ ✅ Mikro QR ✅ Wen/Mac/Linux Komeriseel ($749+) ~1.2M Dynamsoft Barcode Reader ❌ ✅ Hoë-prestasie N/A ✅ ✅ Komeriseel ($1,249+/jr) ~250K BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (Gratis) ~4.5M Tabel 1: Meester vergelyking van 11 .NET QR-kodelisensies oor sleutel keuringskriteria. Aflaaistatistieke is benaderings vanaf vroeg in 2026. Die res van hierdie artikel ontleed elke ry, met kode, afwegings en eerlike beoordelings. Hoe het ons hierdie biblioteke geëvalueer? Ons het elke biblioteek teen sewe kriteria geëvalueer, geweeg deur hoe dikwels dit werklike keusebesluite dryf: — Kan dit QR-kodes skep uit strings, URL's en gestruktureerde data (vKaarte, Wi-Fi-bewyse)? QR Generasie — Kan dit QR-kodes uit beelde, skanderings of PDF's dekodeer? Hoe hanteer dit beskadigde of gedraaide kodes? QR Lees — Logo-inbedding, kleurbestuur, modulevorm-styling, foutkorreksiekonfigurasie Aanpassing — Standaard QR, Mikro QR, RMQR (Rektangulêre Mikro QR) QR Formaat Ondersteuning — Werk dit skoon op Windows, Linux, macOS, en binne Docker-houers sonder System.Drawing-hacks? Kruisplatform — Oopbron teenoor kommersieel, per-ontwikkelaar-prys, suite-afslag Lisensiering & Koste — Kwaliteit van API-naslaans, beskikbaarheid van tutoriale, gemeenskapsgrootte, aktiewe onderhoud Dokumentasie & Ekosisteem Alle kod Voorbeelde teiken en gebruik top-vlak stellings. Waar .NET 10 relevante verbeteringe bekendstel, sal ons dit noem. .NET 8 (LTS) Watter QR-biblioteek moet jy kies? 'n Besluitraamwerk Slaan die 11 biblioteekprofiele hieronder oor as jy reeds jou beperkings ken. Hier is die vinnige pad: → of . Albei is MIT-gelisensieer. QRCoder het meer renderers en payload-hulpmiddels; Net.Codecrete is ligter en vermy System.Drawing heeltemal. "Ek moet QR-kodes gratis genereer sonder enige afhanklikhede." QRCoder Net.Codecrete.QrCodeGenerator → (ML-aangedrewe lees, beste akkuraatheid op beskadigde kodes), (gratis, gevegstoets, breedste formaatondersteuning), of (ondernemingsuite, duur). "Ek moet beide QR-kodes genereer EN lees." IronQR ZXing.Net Aspose.BarCode → , , of . Al drie vermy die System.Drawing-afhanklikheid wat kruisplatformontplooiings breek. "Ek ontplooi na Linux/Docker en kan nie System.Drawing gebruik nie." IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → lei in rou generasie-benchmarks. Vir leesprestasie is spesiaal ontwerp vir hoë-deurset skandering. "Prestasie en geheuevoetspoor is krities." SkiaSharp.QrCode Dynamsoft Barcode Reader → Gebruik wat jy het. Om nog 'n verskaffer se QR-biblioteek by te voeg wanneer jou suite reeds een insluit, maak selde sin vanuit 'n lisensierings- of onderhoudsperspektief. "Ek gebruik reeds 'n Aspose/Syncfusion/Iron Software suite." → het eksplisiete MAUI en Blazor integrasiegidse. Microsoft MVP Jeff Fritz wat IronQR met Blazor gebruik, 'n werklike voorbeeld van hierdie presiese patroon. "Ek bou 'n Blazor/MAUI mobiele app met QR-skandering." IronQR het 'n QR-gebaseerde digitale besigheidskaartjie-app gebou Die 11 .NET QR-kodelisensies Vergelyk 1. IronQR — ML-Aangedrewe QR Lees en Generasie met Kruisplatform Ondersteuning IronQR is Iron Software se toegewyde QR-kodelisensie, apart van hul breër IronBarcode-produk. Sy uitstaande kenmerk is 'n masjienleer model ( -gebaseer) wat QR-kodes van onvolmaakte beelde, gedraai, gedeeltelik verborge, of geskiet teen vreemde hoeke, dikwels in net 'n paar reëls kode, opspoor en lees. ONNX Dit is ook in staat om QR-kodes met gemak te skep, met ondersteuning om QR-kodes met beelde te styl, pasgemaakte kleure by te voeg, en jou QR-beeld na verskillende uitvoerformate te stoor. Generasie: using IronQr; using IronSoftware.Drawing; // Genereer 'n gestileerde QR-kode met 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"); IronQR Gegenereerde QR Uitset Lees: 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}"); IronQR Lees Uitset Die ML-model is wat IronQR van elke ander biblioteek op hierdie lys onderskei. In ons toetsing het dit suksesvol QR-kodes van foto's van konferensie-kentekens en skuins skermkiekies van slimfone gedekodeer waar ZXing.Net en basiese beeldverwerkingslesers niks terugbesorg het nie. Die afweging is pakketgrootte, die ONNX-model voeg gewig by. As jy nie lees benodig nie, word IronQR.Slim sonder die ML-model verskeep en is dit aansienlik ligter. Sterkpunte: ML-aangedrewe lees hanteer beskadigde, gedraaide en gedeeltelik verborge QR-kodes en prioritiseer akkuraatheid Ondersteun QR-kode, Mikro QR en RMQR (Rektangulêre Mikro QR) formate Volle styl-API: kleure, logo's, geronde modules, marges Kruisplatform: Windows, macOS, Linux, iOS, Android, Docker, Azure, AWS Asynchrone leesondersteuning (ReadAsync) vir bedienerwerkverrigting Stoor na verskeie formate soos PNG-beeld, JPG, meerblad TIFF, en meer Gebruikersvriendelike API maak dit maklik om te gebruik Beperkings: Komerseel lisensie vereis ($749+ per ontwikkelaar vir ontplooiing) Volle pakket is swaarder as oopbron alternatiewe vanweë die ML-model is laer as volwasse oopbron opsies, nuwer produk (gelanseer ~2023) NuGet aflaaistatistiek Slegs-generasie projekte mag dalk nie die ML-oorslag nodig hê nie Projekte wat beide generasie en lees benodig, veral waar skandeertoestande onvolmaak is (mobiele programme, pakhuis skandering, konferensie/geleentheid scenarios). Die demonstreer IronQR wat real-time QR-generasie met Blazor en pasgemaakte handelsmerke hanteer. Beste vir: Jeff Fritz QR besigheidskaartjie saakstudie 2. — Die Gewildste Oopbron QR-Generator QRCoder Die QRCoder-biblioteek is die enkele mees afgelaaide QR-kodepakket op NuGet, met . Oorspronklik geskep deur Raffael Herrmann in 2013 en nou , is dit 'n suiwer C#-implementasie wat eksklusief op QR-kode gefokus is (nie lees nie). meer as 68 miljoen aflaaie onderhou deur Shane32 generasie using QRCoder; // Genereer 'n QR-kode en stoor as PNG-grepe 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); QRCoder Uitset Beeld QRCoder bied veelvuldige renderers: PngByteQRCode (kruisplatform, geen System.Drawing-afhanklikheid nie), QRCode (System.Drawing-gebaseer, slegs Windows), SvgQRCode, AsciiQRCode, en meer. Dit sluit ook payload-generators in vir gestruktureerde data soos Wi-Fi-bewyse, vKaarte, en boekmerke, wat u spaar van die handmatige formatering van daardie strings. Sterkpunte: MIT-lisensie, heeltemal gratis vir kommersiële gebruik 68M+ NuGet-aflaaie, massiewe gemeenskapsaanvaarding en bewese stabiliteit Veelvuldige renderer-opsies, insluitend 'n PngByteQRCode wat System.Drawing vermy Ingeboude payload-generators (Wi-Fi, vCard, geolokasie, kalendergebeurtenisse) Mikro QR-kodes ondersteuning Nul afhanklikhede van .NET Standard-teikens Beperkings: , kan nie QR-beeldlêers lees of dekodeer nie Slegs generasie Sommige renderers (soos QRCode) is afhanklik van System.Drawing.Common, wat Windows-alleen is sedert .NET 6 Geen logo-inbedding ingebou nie (u sou die beeld self saamstel) Geen gevorderde stilering nie (module vorms, grasiënte) Projekte wat slegs QR-generasie benodig, veral wanneer die begroting nul is. As u Wi-Fi QR-kodes of vKaarte moet genereer en geen kodes hoef te lees nie, is QRCoder die pragmatiese standaardkeuse vir die meeste .NET-ontwikkelaars. Beste vir: 3. — Die Switserse-leërmess van Barcode Biblioteke ZXing.Net ("Zebra Crossing") is die van die oorspronklike Java ZXing-biblioteek. Dit is 'n algemene barcode-biblioteek wat meer as 15 formate ondersteun, QR-kode, Data Matrix, Aztec, PDF 417, UPC, EAN, Code 128, en meer. QR-ondersteuning is 'n subset van sy breër vermoëns. ZXing.Net .NET-poort using ZXing; using ZXing.Common; using ZXing.QrCode; // Genereer 'n QR-kode var writer = new BarcodeWriterPixelData { Format = BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Height = 250, Width = 250, Margin = 1 } }; var pixelData = writer.Write("https://example.com"); // Lees van 'n QR-kode vereis 'n bindingspakket (bv. ZXing.Net.Bindings.SkiaSharp) ZXing.Net Uitset ZXing.Net vereis platform-spesifieke bindingspakkette vir weergawwe en lees. Die kernpakket verskaf kodering/dekodering logika; u voeg ZXing.Net.Bindings.Windows.Compatibility, ZXing.Net.Bindings.SkiaSharp, of ZXing.Net.Bindings.ImageSharp by, afhangende van u teikenplatform. Hierdie modulêre benadering is buigsaam, maar voeg integrasie kompleksiteit by. Sterkpunte: Apache 2.0-lisensie, gratis vir kommersiële gebruik Beide generasie en lees in een enkele biblioteek Ondersteun 15+ barcode formate bo en behalwe QR-kodes , gevegstoets, uitgebreide gemeenskaps-kennis 32M+ NuGet-aflaaie Bindings beskikbaar vir SkiaSharp, ImageSharp, OpenCV, en meer Beperkings: QR-spesifieke funksies is basies, geen logo-inbedding nie, geen gevorderde stilering nie Lees akkuraatheid op beskadigde/gedraaide QR-kodes is matig vergeleke met ML-aangedrewe oplossings Bindingspakkette voeg afhanklikheidsbestuur kompleksiteit by API-ontwerp toon sy ouderdom, minder vloeiend as moderne .NET biblioteke Aktiewe onderhoudstempo het vertraag (gemeenskaps-onderhou) Projekte wat beide QR-kodes en tradisionele barcodes benodig (kleinhandel, logistiek) en 'n gratis, bewese opsie wil hê. As u prioriteit QR-spesifieke funksies soos stilering of ML-aangedrewe lees is eerder as breë barcode formaat dekking, sal 'n toegewyde QR-biblioteek u beter dien. Beste vir: 4. Net.Codecrete.QrCodeGenerator — Liggewig en Standaarde-Gefokus Net.Codecrete.QrCodeGenerator is 'n skoon, minimale QR-kodes-generasie biblioteek deur Manuel Bleichenbacher. Dit is 'n , gefokus op korrektheid en standaard voldoening ( ). .NET vertaling van Project Nayuki se Java QR-kodes generator 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); Voorbeeld Uitset met Net.Codecrete.QrCodeGenerator Met , is dit goed aangeneem vir 'n gefokusde biblioteek. Sy uitstaande kwaliteit is nul afhanklikhede op System.Drawing — dit genereer SVG, XAML pad data, PNG, en BMP inheems. Dit maak dit 'n uitstekende keuse vir kruisplatform .NET projekte en ASP.NET Core dienste wat in Docker loop. ~4.1 miljoen NuGet-aflaaie Sterkpunte: MIT-lisensie, heeltemal gratis Nul System.Drawing-afhanklikheid, waarlik kruisplatform Klein voetspoor, vinnige generasie SVG en XAML uitset ingebou (nuttig vir WPF, WinUI, en web scenario's) Korrekte implementasie van alle 40 QR-weergawes en alle 4 foutkorreksievlakke Uitgebreide voorbeeldprojekte (WinForms, WPF, ASP.NET Core, SkiaSharp, ImageSharp) Beperkings: , geen QR-lees vermoë nie Slegs generasie Geen logo-inbedding of gevorderde stileringfunksies nie Beperkte aanpassing vergeleke met QRCoder se payload-generators Minder gemeenskapsinhoud en tutoriale vergeleke met QRCoder of ZXing.Net Ontwikkelaars wat 'n klein, korrekte, kruisplatform QR-generator benodig met SVG-uitset en geen System.Drawing-bagasie nie. As u ontplooiingsteiken Linux of Docker is en u slegs generasie benodig, verdien hierdie biblioteek ernstige aandag. Beste vir: 5. SkiaSharp.QrCode — Hoë-Prestasie Kruisplatform Generasie SkiaSharp.QrCode deur is 'n prestasie-gefokusde QR-generasie biblioteek gebou op SkiaSharp. Dit is spesifiek geskep om System.Drawing se GDI+-beperkings te vermy, terwyl dit inheemse vlak prestasie lewer deur SkiaSharp se hardewareversnelling. guitarrapc using SkiaSharp.QrCode.Image; // Een-lyn: genereer en stoor QRCodeImageBuilder.SavePng("https://example.com", "qrcode.png"); // Of met pasgemaakte instellings var pngBytes = new QRCodeImageBuilder("https://example.com") .WithSize(512, 512) .WithErrorCorrection(ECCLevel.H) .ToByteArray(); SkiaSharp.QrCode Een-Lyn Uitset Benchmark resultate van die projek se bewaarplek toon dat SkiaSharp.QrCode beter presteer as QRCoder en ander .NET QR-biblioteke in beide spoed en geheue toewysing vir generasie take. Dit bereik nul-kopie weergawwe direk na die SkiaSharp-doek, en vermy tussenliggende buffer toewysings. Sterkpunte: MIT-lisensie, gratis vir kommersiële gebruik Beste-in-klas generasie prestasie (gebenchmarked) Minimale geheue toewysing, lae GC druk vir hoë-deurset scenario's NativeAOT gereed (.NET Native AOT kompilasie ondersteuning) Pasgemaakte module vorms (sirkels, geronde reghoeke) vir gestileerde QR-kodes Werk op Windows, Linux, macOS, iOS, Android