Fuld gennemsigtighed: Vi er udviklerrelationssteamet hos Iron Software, virksomheden bag IronQR, et af bibliotekerne i denne sammenligning. Når det er sagt, mener vi, at ærlige evalueringer tjener alle bedre end marketing-spin. Vi vil vise vores metode, anerkende vores bias og lade koden tale for sig selv. Vi kørte hvert C# QR-kodebibliotek gennem identiske evalueringskriterier: simpel QR-generering, QR-aflæsning fra billeder, tilpasningsdybde, cross-platform-support og licensomkostninger. Nedenfor er resultatet, en sammenligning af 11 bemærkelsesværdige QR-kodebiblioteker i .NET-økosystemet, designet til at hjælpe dig med at vælge det rigtige til dit projekt med det samme. Her er hvordan tre linjer med QR-generering ser ud med i Visual Studio, et af de biblioteker, vi vil dække: IronQR using IronQr; using IronSoftware.Drawing; QrCode qr = QrWriter.Write("https://example.com"); AnyBitmap bitmap = qr.Save(); bitmap.SaveAs("myqr.png"); IronQR Eksempel på QR-kodeoutput Den enkelhed er grundlæggende. Det virkelige spørgsmål er, hvad der sker, når du har brug for at en beskadiget QR-kode fra en lager-scanner, indlejre et mærkevarelogo, målrette mod Linux-containere eller behandle tusindvis af koder i et batchjob. Det er der, bibliotekerne divergerer, og hvor denne sammenligning tjener sit formål. læse TL;DR: Master Sammenligningstabel Før vi går i dybden, her er det fulde billede. Denne tabel fanger de dimensioner, der betyder mest, når man vælger et QR-bibliotek til et .NET-projekt. Bibliotek Generer Læs Logo/Styling Mikro QR Cross-Platform Licens NuGet Downloads IronQR ✅ ✅ ML-drevet ✅ Fuld ✅ + RMQR ✅ Win/Mac/Linux/Mobil Kommerciel (749$+) ~56K QRCoder ✅ ❌ ✅ Moderat ✅ ⚠️ Delvis (System.Drawing) MIT (Gratis) ~68M ZXing.Net ✅ ✅ ❌ Minimal ❌ ⚠️ Via bindings Apache 2.0 (Gratis) ~32M Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (Gratis) ~4,1M SkiaSharp.QrCode ✅ ❌ ✅ Brugerdefinerede former ❌ ✅ MIT (Gratis) ~1,2M Aspose.BarCode ✅ ✅ ✅ ✅ ✅ Kommerciel (999$+) ~5,4M Syncfusion Barcode ✅ ❌ ✅ Moderat ❌ ✅ (UI-kontrol) Kommerciel (Gratis community) ~2M+ Spire.Barcode ✅ ✅ ✅ Logo indlejring ❌ ⚠️ (System.Drawing) Kommerciel (599$+) ~450K IronBarcode ✅ ✅ ✅ ✅ Mikro QR ✅ Win/Mac/Linux Kommerciel (749$+) ~1,2M Dynamsoft Barcode Reader ❌ ✅ Høj ydelse N/A ✅ ✅ Kommerciel (1.249$+ om året) ~250K BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (Gratis) ~4,5M Tabel 1: Master sammenligning af 11 .NET QR-kodebiblioteker på tværs af vigtige udvælgelseskriterier. Downloadantal er omtrentlige fra start 2026. Resten af denne artikel uddyber hver række, med kode, afvejninger og ærlige vurderinger. Hvordan Evaluerede Vi Disse Biblioteker? Vi evaluerede hvert bibliotek ud fra syv kriterier, vægtet efter hvor ofte de driver reelle valgbeslutninger: — Kan det oprette QR-koder fra strenge, URL'er og strukturerede data (vCards, Wi-Fi-legitimationsoplysninger)? QR-generering — Kan det afkode QR-koder fra billeder, scanninger eller PDF'er? Hvordan håndterer det beskadigede eller roterede koder? QR-aflæsning — Logoindlejring, farvestyring, styling af modullayout, konfiguration af fejlkorrektion Tilpasning — Standard QR, Mikro QR, RMQR (Rektangulær Mikro QR) QR-formatunderstøttelse — Kører det rent på Windows, Linux, macOS og inde i Docker-containere uden System.Drawing-hacks? Cross-Platform — Open-source versus kommerciel, priser pr. udvikler, pakkerabatter Licens & Omkostninger — Kvalitet af API-reference, tilgængelighed af tutorials, community-størrelse, aktiv vedligeholdelse Dokumentation & Økosystem Alle kodeeksempler er målrettet og bruger top-level statements. Hvor .NET 10 introducerer relevante forbedringer, bemærker vi dem. .NET 8 (LTS) Hvilket QR-bibliotek Skal Du Vælge? Et Beslutningsframework Spring de 11 biblioteksprofiler nedenfor over, hvis du allerede kender dine begrænsninger. Her er den hurtige vej: → eller . Begge er MIT-licenserede. QRCoder har flere renderers og payload-hjælpere; Net.Codecrete er lettere og undgår System.Drawing helt. "Jeg skal generere QR-koder gratis uden afhængigheder." QRCoder Net.Codecrete.QrCodeGenerator → (ML-drevet læsning, bedste nøjagtighed på beskadigede koder), (gratis, kampafprøvet, bredeste formatunderstøttelse) eller (enterprise-pakke, dyr). "Jeg skal både generere OG læse QR-koder." IronQR ZXing.Net Aspose.BarCode → , eller . Alle tre undgår System.Drawing-afhængigheden, der bryder cross-platform-implementeringer. "Jeg implementerer på Linux/Docker og kan ikke bruge System.Drawing." IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → fører i rå genereringsbenchmarks. For læseydeevne er specialbygget til høj-throughput scanning. "Ydeevne og hukommelsesforbrug er kritisk." SkiaSharp.QrCode Dynamsoft Barcode Reader → Brug hvad du har. At tilføje en anden leverandørs QR-bibliotek, når din pakke allerede indeholder et, giver sjældent mening ud fra et licens- eller vedligeholdelsesperspektiv. "Jeg bruger allerede en Aspose/Syncfusion/Iron Software-pakke." → har eksplicitte MAUI- og Blazor-integrationsvejledninger. Microsoft MVP Jeff Fritz ved hjælp af IronQR med Blazor, et reelt eksempel på dette specifikke mønster. "Jeg bygger en Blazor/MAUI mobilapp med QR-scanning." IronQR byggede en QR-baseret digital visitkortapp De 11 .NET QR-kodebiblioteker Sammenlignet 1. IronQR — ML-drevet QR-aflæsning og Generering med Cross-Platform Support IronQR er Iron Softwares dedikerede QR-kodebibliotek, adskilt fra deres bredere IronBarcode-produkt. Dens fremtrædende funktion er en machine learning-model (baseret på ), der registrerer og læser QR-koder fra ufuldkomne billeder, roterede, delvist skjulte eller fotograferede i skæve vinkler, ofte med få kodelinjer. ONNX Det er også i stand til nemt at oprette QR-kodeobjekter, med understøttelse af at style QR-koder med billeder, tilføje brugerdefinerede farver og gemme dit QR-billede i forskellige outputformater. Generering: using IronQr; using IronSoftware.Drawing; // Generer en stylet QR-kode med 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 Genereret QR-output Aflæsning: 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 Aflæsningsoutput ML-modellen er det, der adskiller IronQR fra alle andre biblioteker på denne liste. I vores test afkodede den succesfuldt QR-koder fra konferencemærkebilleder og skæve smartphone-skærmbilleder, hvor ZXing.Net og grundlæggende billedbehandlingslæsere returnerede intet. Afvejningen er pakkestørrelsen, ONNX-modellen tilføjer vægt. Hvis du ikke har brug for aflæsning, leveres IronQR.Slim uden ML-modellen og er betydeligt lettere. Styrker: ML-drevet aflæsning håndterer beskadigede, roterede og delvist skjulte QR-koder og prioriterer nøjagtighed Understøtter QR Code, Micro QR og RMQR (Rektangulær Mikro QR) formater Fuld styling API: farver, logoer, afrundede moduler, marginer Cross-platform: Windows, macOS, Linux, iOS, Android, Docker, Azure, AWS Asynkron læsningssupport (ReadAsync) til serverworkloads Gem til flere formater som PNG-billede, JPG, TIFF med flere sider og mere Brugervenlig API gør den nem at bruge Begrænsninger: Kommerciel licens påkrævet (749$+ pr. udvikler til implementering) Fuld pakke er tungere end open-source alternativer på grund af ML-model er lavere end modne open-source muligheder, nyere produkt (lanceret ~2023) NuGet downloadantal Genereringsfokuserede projekter behøver muligvis ikke ML-overhead Projekter, der har brug for både generering og aflæsning, især hvor scanningsforholdene er ufuldkomne (mobilapps, lager-scanning, konferencer/begivenhedsscenarier). demonstrerer IronQR, der håndterer realtids QR-generering med Blazor og brugerdefinerede branding. Bedst til: Jeff Fritz QR visitkort case study 2. — Den Mest Populære Open-Source QR-generator QRCoder QRCoder-biblioteket er den enkelt mest downloadede QR-kode-pakke på NuGet, med . Oprindeligt skabt af Raffael Herrmann i 2013 og nu , er det en ren C#-implementering, der udelukkende fokuserer på QR-kode (ikke aflæsning). over 68 millioner downloads vedligeholdt af Shane32 generering using QRCoder; // Generer en QR-kode og gem som PNG-bytes 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 Output-billede QRCoder leverer flere renderers: PngByteQRCode (cross-platform, ingen System.Drawing-afhængighed), QRCode (System.Drawing-baseret, kun Windows), SvgQRCode, AsciiQRCode og mere. Det inkluderer også payload-generatorer til strukturerede data som Wi-Fi-legitimationsoplysninger, vCards og bogmærker, hvilket sparer dig for at formatere disse strenge manuelt. Styrker: MIT-licens, helt gratis til kommerciel brug 68M+ NuGet-downloads, massiv community-adoption og bevist stabilitet Flere renderer-muligheder, herunder en PngByteQRCode, der undgår System.Drawing Indbyggede payload-generatorer (Wi-Fi, vCard, geolokation, kalenderbegivenheder) Understøttelse af Mikro QR-kode Nul afhængigheder på .NET Standard-targets Begrænsninger: , kan ikke læse eller afkode QR-kodebilledfiler Kun generering Nogle renderers (som QRCode) afhænger af System.Drawing.Common, som er Windows-only siden .NET 6 Ingen logoindlejring indbygget (du ville sammensætte billedet selv) Ingen avanceret styling (modulformer, gradienter) Projekter, der kun har brug for QR-generering, især når budgettet er nul. Hvis du skal generere Wi-Fi QR-koder eller vCards og slet ikke behøver at læse koder, er QRCoder det pragmatiske standardvalg for de fleste .NET-udviklere. Bedst til: 3. — Løsningernes Swiss Army Knife til stregkoder ZXing.Net ("Zebra Crossing") er af det originale Java ZXing-bibliotek. Det er et generelt stregkodebibliotek, der understøtter over 15 formater, QR-kode, Data Matrix, Aztec, PDF 417, UPC, EAN, Code 128 og mere. QR-understøttelse er en delmængde af dets bredere funktionaliteter. ZXing.Net .NET-porten using ZXing; using ZXing.Common; using ZXing.QrCode; // Generer en 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"); // Aflæsning af en QR-kode kræver en bindingspakke (f.eks. ZXing.Net.Bindings.SkiaSharp) ZXing.Net Output ZXing.Net kræver platformsspecifikke bindingspakker til rendering og aflæsning. Kernepakken leverer kodnings-/afkodningslogik; du tilføjer ZXing.Net.Bindings.Windows.Compatibility, ZXing.Net.Bindings.SkiaSharp eller ZXing.Net.Bindings.ImageSharp afhængigt af din målplatform. Denne modulære tilgang er fleksibel, men tilføjer integrationskompleksitet. Styrker: Apache 2.0-licens, gratis til kommerciel brug Både generering og aflæsning i et enkelt bibliotek Understøtter 15+ stregkodeformater ud over QR-koder , kampafprøvet, omfattende community-viden 32M+ NuGet-downloads Bindings tilgængelige for SkiaSharp, ImageSharp, OpenCV og mere Begrænsninger: QR-specifikke funktioner er basale, ingen logoindlejring, ingen avanceret styling Nøjagtighed ved aflæsning af beskadigede/roterede QR-koder er moderat sammenlignet med ML-drevne løsninger Bindingspakker tilføjer kompleksitet i afhængighedsstyring API-design viser sin alder, mindre flydende end moderne .NET-biblioteker Aktiv vedligeholdelsestakt er aftaget (community-vedligeholdt) Projekter, der har brug for både QR-kode og traditionel stregkodeunderstøttelse (detailhandel, logistik) og ønsker en gratis, bevist mulighed. Hvis din prioritet er QR-specifikke funktioner som styling eller ML-drevet aflæsning snarere end bred stregkodeformatdækning, vil et dedikeret QR-bibliotek tjene dig bedre. Bedst til: 4. Net.Codecrete.QrCodeGenerator — Letvægts og Standardfokuseret Net.Codecrete.QrCodeGenerator er et rent, minimalt QR-kodegenereringsbibliotek af Manuel Bleichenbacher. Det er en , fokuseret på korrekthed og standardoverholdelse ( ). .NET-oversættelse af Project Nayukis Java QR-kodegenerator 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); Eksempeloutput med Net.Codecrete.QrCodeGenerator Med er det velanvendt til et fokuseret bibliotek. Dens fremtrædende kvalitet er nul afhængigheder på System.Drawing — det genererer SVG, XAML-stiedata, PNG og BMP native. Dette gør det til et fremragende valg til cross-platform .NET-projekter og ASP.NET Core-tjenester, der kører i Docker. ~4,1 millioner NuGet-downloads Styrker: MIT-licens, helt gratis Nul System.Drawing-afhængighed, virkelig cross-platform Lille fodaftryk, hurtig generering SVG og XAML output indbygget (nyttigt til WPF, WinUI og webscenarier) Korrekt implementering af alle 40 QR-versioner og alle 4 fejlkorrektionsniveauer Omfattende eksempelprojekter (WinForms, WPF, ASP.NET Core, SkiaSharp, ImageSharp) Begrænsninger: , ingen QR-aflæsningskapacitet Kun generering Ingen logoindlejring eller avancerede stylingfunktioner Begrænset tilpasning sammenlignet med QRCoders payload-generatorer Mindre community-indhold og tutorials sammenlignet med QRCoder eller ZXing.Net Udviklere, der har brug for en lille, korrekt, cross-platform QR-generator med SVG-output og ingen System.Drawing-bagage. Hvis din implementeringsdestination er Linux eller Docker, og du kun har brug for generering, fortjener dette bibliotek seriøs overvejelse. Bedst til: 5. SkiaSharp.QrCode — Højtydende Cross-Platform Generering SkiaSharp.QrCode af er et performance-fokuseret QR-genereringsbibliotek bygget på SkiaSharp. Det blev skabt specifikt for at undgå System.Drawings GDI+-begrænsninger, mens det leverer native-niveau ydeevne gennem SkiaSharps hardwareacceleration. guitarrapc using SkiaSharp.QrCode.Image; // Enkelt linje: generer og gem QRCodeImageBuilder.SavePng("https://example.com", "qrcode.png"); // Eller med brugerdefinerede indstillinger var pngBytes = new QRCodeImageBuilder("https://example.com") .WithSize(512, 512) .WithErrorCorrection(ECCLevel.H) .ToByteArray(); SkiaSharp.QrCode Enkelt linje Output Benchmarkresultater fra projektets repository viser SkiaSharp.QrCode, der overgår QRCoder og andre .NET QR-biblioteker i både hastighed og hukommelsesallokering til genereringsopgaver. Det opnår zero-copy rendering direkte til SkiaSharp-canvaset og undgår mellemliggende bufferallokeringer. Styrker: MIT-licens, gratis til kommerciel brug Bedste-i-klassen genereringsydeevne (benchmarket) Minimal hukommelsesallokering, lav GC-tryk til høj-throughput scenarier NativeAOT klar (.NET Native AOT kompilationsunderstøttelse) Brugerdefinerede modullayout (cirkler, afrundede rektangler) til stylet QR-koder Fungerer på Windows, Linux, macOS, iOS, Android, WebAssembly Begrænsninger: , ingen QR-aflæsning Kun generering Kræver SkiaSharp native afhængigheder (platformsspecifikke NuGet-pakker) Mindre community end QRCoder eller ZXing.Net Ingen payload-generatorer (Wi-Fi, vCard), du formaterer disse strenge selv Kun UTF-8, ingen ISO-8859-2 eller Shift JIS-kodning Høj-throughput serverapplikationer, der genererer QR-koder i stor skala (f.eks. billet-systemer, batch-labelgenerering), hvor ydeevne og hukommelseseffektivitet betyder mest. Også ideel, hvis du allerede bruger SkiaSharp i dit projekt. Bedst til: