Isäntyys: Olemme Iron Softwaren kehittäjäsuhteiden tiimi, yritys IronQR:n takana, yksi tämän vertailun kirjastoista. Silti uskomme, että rehelliset arvioinnit palvelevat kaikkia paremmin kuin markkinointipuheet. Näytämme menetelmämme, tunnustamme puolueellisuutemme ja annamme koodin puhua puolestaan. Suoritimme jokaisen C#-QR-koodikirjaston identtisillä arviointikriteereillä: yksinkertainen QR-koodin luonti, QR-koodien lukeminen kuvista, mukauttamisen syvyys, alustariippumattomuus ja lisenssikustannukset. Alla on tulos, vertailu 11 merkittävästä QR-koodikirjastosta .NET-ekosysteemissä, joka on suunniteltu auttamaan sinua valitsemaan oikean projektillesi heti ensimmäisellä kerralla. Tässä näyttää kolme riviä QR-koodin luontia Visual Studiossa, yksi kirjastoista, joita käsittelemme: IronQR:llä using IronQr; using IronSoftware.Drawing; QrCode qr = QrWriter.Write("https://example.com"); AnyBitmap bitmap = qr.Save(); bitmap.SaveAs("myqr.png"); IronQR Esimerkki QR-kooditulosteesta Tuo yksinkertaisuus on perusvaatimus. Todellinen kysymys on, mitä tapahtuu, kun sinun on luettava vahingoittunut QR-koodi varastotunnistimesta, upotettava brändätty logo, kohdennettava Linux-kontteja tai käsiteltävä tuhansia koodeja eräajona. Siinä kirjastot eroavat toisistaan, ja siinä tämä vertailu ansaitsee paikkansa. Yhteenveto: Päävertailutaulukko Ennen kuin syvennymme, tässä on kokonaiskuva. Tämä taulukko sisältää tärkeimmät ulottuvuudet, kun valitaan QR-kirjastoa .NET-projektiin. Kirjasto Luo Lue Logo/Tyylittely Micro QR Alustariippumaton Lisenssi NuGet-lataukset IronQR ✅ ✅ ML-pohjainen ✅ Täysi ✅ + RMQR ✅ Win/Mac/Linux/Mobiili Kaupallinen (749 $+) ~56K QRCoder ✅ ❌ ✅ Kohtalainen ✅ ⚠️ Osittainen (System.Drawing) MIT (Ilmainen) ~68M ZXing.Net ✅ ✅ ❌ Minimaalinen ❌ ⚠️ Sitoumusten kautta Apache 2.0 (Ilmainen) ~32M Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (Ilmainen) ~4.1M SkiaSharp.QrCode ✅ ❌ ✅ Mukautetut muodot ❌ ✅ MIT (Ilmainen) ~1.2M Aspose.BarCode ✅ ✅ ✅ ✅ ✅ Kaupallinen (999 $+) ~5.4M Syncfusion Barcode ✅ ❌ ✅ Kohtalainen ❌ ✅ (UI-kontrolli) Kaupallinen (Ilmainen yhteisö) ~2M+ Spire.Barcode ✅ ✅ ✅ Logon upotus ❌ ⚠️ (System.Drawing) Kaupallinen (599 $+) ~450K IronBarcode ✅ ✅ ✅ ✅ Micro QR ✅ Win/Mac/Linux Kaupallinen (749 $+) ~1.2M Dynamsoft Barcode Reader ❌ ✅ Suorituskykyinen N/A ✅ ✅ Kaupallinen (1 249 $+/vuosi) ~250K BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (Ilmainen) ~4.5M Taulukko 1: Päävertailu 11 .NET QR-koodikirjastosta keskeisten valintakriteerien mukaan. Latausmäärät ovat arvioita vuoden 2026 alusta. Loppuosa tästä artikkelista purkaa jokaisen rivin, sisältäen koodia, kompromisseja ja rehellisiä arvioita. Kuinka arvioimme näitä kirjastoja? Arvioimme jokaisen kirjaston seitsemän kriteerin perusteella, painotettuna sen mukaan, kuinka usein ne vaikuttavat todellisiin valintapäätöksiin: — Voiko se luoda QR-koodeja merkkijonoista, URL-osoitteista ja jäsennellystä datasta (vCards, Wi-Fi-tunnukset)? QR-koodin luonti — Voiko se dekoodata QR-koodeja kuvista, skannauksista tai PDF-tiedostoista? Miten se käsittelee vahingoittuneita tai kiertyneitä koodeja? QR-koodin lukeminen — Logon upotus, värien hallinta, moduulien muotojen tyylittely, virheenkorjausasetukset Mukauttaminen — Standardi QR, Micro QR, RMQR (suorakulmainen Micro QR) QR-muototuki — Toimiiko se moitteettomasti Windowsissa, Linuxissa, macOS:ssä ja Docker-konttien sisällä ilman System.Drawing-hakkerointeja? Alustariippumaton — Avoin lähdekoodi vs. kaupallinen, kehittäjäkohtainen hinnoittelu, pakettialennukset Lisenssi ja kustannukset — API-referenssin laatu, tutoriaalien saatavuus, yhteisön koko, aktiivinen ylläpito Dokumentaatio ja ekosysteemi Kaikki koodiesimerkit kohdistuvat ja käyttävät ylätason lausuntoja. Missä .NET 10 esittelee asiaankuuluvia parannuksia, huomioimme ne. .NET 8 (LTS) Minkä QR-kirjaston pitäisi valita? Päätöskehys Ohita 11 kirjastoprofiilia alla, jos tiedät jo rajoitteesi. Tässä nopea polku: → tai . Molemmat ovat MIT-lisensoituja. QRCoderilla on enemmän renderöijöitä ja datan apuohjelmia; Net.Codecrete on kevyempi ja välttää kokonaan System.Drawingin. "Tarvitsen ilmaisia QR-koodeja ilman riippuvuuksia." QRCoder Net.Codecrete.QrCodeGenerator → (ML-pohjainen lukeminen, paras tarkkuus vahingoittuneissa koodeissa), (ilmainen, todistettu, laajin muototuki) tai (yritystason paketti, kallis). "Tarvitsen sekä luoda ETTÄ lukea QR-koodeja." IronQR ZXing.Net Aspose.BarCode → , tai . Kaikki kolme välttävät System.Drawing-riippuvuuden, joka rikkoo alustariippumattomat käyttöönotot. "Aion ottaa käyttöön Linuxissa/Dockerissa enkä voi käyttää System.Drawingia." IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → johtaa raakojen luontitestien tuloksissa. Lukemisen suorituskyvyn osalta on suunniteltu korkean läpimenon skannaukseen. "Suorituskyky ja muistijälki ovat kriittisiä." SkiaSharp.QrCode Dynamsoft Barcode Reader → Käytä sitä, mitä sinulla on. Toisen toimittajan QR-kirjaston lisääminen, kun pakettisi sisältää jo yhden, ei harvoin ole järkevää lisenssin tai ylläpidon kannalta. "Käytän jo Aspose/Syncfusion/Iron Software -pakettia." → on nimenomaiset MAUI- ja Blazor-integraatio-oppaat. Microsoft MVP Jeff Fritz käyttäen IronQR:ää Blazorin kanssa, todellinen esimerkki juuri tästä kuviosta. "Olen rakentamassa Blazor/MAUI mobiilisovellusta QR-skannauksella." IronQR:llä rakensi QR-koodiin perustuvan digitaalisen käyntikorttisovelluksen Verratut 11 .NET QR-koodikirjastoa 1. IronQR — ML-pohjainen QR-lukeminen ja -luonti alustariippumattomasti IronQR on Iron Softwaren erillinen QR-koodikirjasto, erillään heidän laajemmasta IronBarcode-tuotteestaan. Sen erottuva ominaisuus on koneoppimismalli (perustuu ), joka tunnistaa ja lukee QR-koodeja epätäydellisistä kuvista, kiertyneistä, osittain peittyneistä tai vinoista kulmista otetuista kuvista, usein vain muutamalla koodirivillä. ONNX:ään Se pystyy myös luomaan QR-koodiobjekteja helposti, tukien QR-koodien tyylittelyä kuvilla, mukautettujen värien lisäämistä ja QR-kuvasi tallentamista eri tulostusmuotoihin. Luonti: using IronQr; using IronSoftware.Drawing; // Luo tyylitelty QR-koodi logolla 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 luotu QR-tuloste Lukeminen: 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 luettu tuloste ML-malli erottaa IronQR:n muista tämän listan kirjastoista. Testauksissamme se onnistuneesti dekoodasi QR-koodeja konferenssien käyntikorttikuvista ja vinoista älypuhelinkuvakaappauksista, joista ZXing.Net ja peruskuvankäsittelylukijat eivät palauttaneet mitään. Kompromissina paketin koko, ONNX-malli lisää painoa. Jos et tarvitse lukemista, IronQR.Slim toimitetaan ilman ML-mallia ja on huomattavasti kevyempi. Vahvuudet: ML-pohjainen lukeminen käsittelee vahingoittuneita, kiertyneitä ja osittain peittyneitä QR-koodeja ja priorisoi tarkkuuden Tukee QR Code, Micro QR ja RMQR (suorakulmainen Micro QR) muotoja Täysi tyylittely-API: värit, logot, pyöristetyt moduulit, reunukset Alustariippumaton: Windows, macOS, Linux, iOS, Android, Docker, Azure, AWS Asynkroninen lukutuki (ReadAsync) palvelimille Tallenna useisiin muotoihin, kuten PNG-kuva, JPG, monisivuinen TIFF ja enemmän Käyttäjäystävällinen API tekee käytöstä helppoa Rajoitukset: Kaupallinen lisenssi vaaditaan (749 $+ per kehittäjä käyttöönottoon) Täysi paketti on painavampi kuin avoimen lähdekoodin vaihtoehdot ML-mallin vuoksi on pienempi kuin kypsillä avoimen lähdekoodin vaihtoehdoilla, uudempi tuote (lanseerattu ~2023) NuGet-latausmäärä Pelkkään luontiin tarkoitetut projektit eivät välttämättä tarvitse ML-ylikuormitusta Projektit, jotka tarvitsevat sekä luomisen että lukemisen, erityisesti kun skannausolosuhteet ovat epätäydellisiä (mobiilisovellukset, varastoskannaus, konferenssi/tapahtumaskenaariot). esittelee IronQR:n käsittelevän reaaliaikaista QR-luontia Blazorin ja mukautetun brändäyksen kanssa. Paras: Jeff Fritz QR-käyntikorttitapauskertomus 2. — Suosituin avoimen lähdekoodin QR-luontiohjelma QRCoder QRCoder-kirjasto on NuGetin ladatuin QR-koodipaketti, jolla on . Alun perin Raffael Herrmannin vuonna 2013 luoma ja nyt , se on puhdas C#-toteutus, joka keskittyy yksinomaan QR-koodin (ei lukemiseen). yli 68 miljoonaa latausta Shane32:n ylläpitämä luomiseen using QRCoder; // Luo QR-koodi ja tallenna PNG-tavuina 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 tulostekuva QRCoder tarjoaa useita renderöijiä: PngByteQRCode (alustariippumaton, ei System.Drawing-riippuvuutta), QRCode (System.Drawing-pohjainen, vain Windows), SvgQRCode, AsciiQRCode ja muita. Se sisältää myös jäsenneltyjen tietojen, kuten Wi-Fi-tunnusten, vCardien ja kirjanmerkkien, datan generaattoreita, mikä säästää sinut näiden merkkijonojen manuaaliselta muotoilulta. Vahvuudet: MIT-lisenssi, täysin ilmainen kaupalliseen käyttöön 68 miljoonaa + NuGet-latausta, valtava yhteisön hyväksyntä ja todistettu vakaus Useita renderöijävaihtoehtoja, mukaan lukien PngByteQRCode, joka välttää System.Drawingin Sisäänrakennetut datan generaattorit (Wi-Fi, vCard, maantieteellinen sijainti, kalenteritapahtumat) Micro QR -koodituki Ei riippuvuuksia .NET Standard -kohteisiin Rajoitukset: , ei QR-koodin lukemista tai dekoodausta Vain luonti Jotkut renderöijät (kuten QRCode) riippuvat System.Drawing.Commonista, joka on Windows-spesifinen .NET 6:sta lähtien Ei sisäänrakennettua logon upotusta (kuvan yhdistäisit itse) Ei edistyneitä tyylittelyjä (moduulimuodot, liukuvärit) Projektit, jotka tarvitsevat vain QR-koodien luontia, erityisesti kun budjetti on nolla. Jos sinun on luotava Wi-Fi QR-koodeja tai vCardeja etkä tarvitse lukea koodeja lainkaan, QRCoder on käytännöllinen oletusvalinta useimmille .NET-kehittäjille. Paras: 3. — Viivakoodikirjastojen Sveitsin armeijan linkkuveitsi ZXing.Net ("Zebra Crossing") on alkuperäisen Java ZXing-kirjaston . Se on yleiskäyttöinen viivakoodikirjasto, joka tukee yli 15 muotoa, QR-koodia, Data Matrixia, Aztec-koodia, PDF 417:ää, UPC:tä, EAN:ia, Code 128:aa ja monia muita. QR-koodituki on osa sen laajempia ominaisuuksia. ZXing.Net .NET-portti using ZXing; using ZXing.Common; using ZXing.QrCode; // Luo QR-koodi var writer = new BarcodeWriterPixelData { Format = BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Height = 250, Width = 250, Margin = 1 } }; var pixelData = writer.Write("https://example.com"); // QR-koodin lukeminen vaatii sidontapaketin (esim. ZXing.Net.Bindings.SkiaSharp) ZXing.Net tuloste ZXing.Net vaatii alustakohtaisia sidontapaketteja renderöintiä ja lukemista varten. Ydinpaketti tarjoaa koodaus/dekoodauslogiikan; lisäät ZXing.Net.Bindings.Windows.Compatibility, ZXing.Net.Bindings.SkiaSharp tai ZXing.Net.Bindings.ImageSharp riippuen kohdealustastasi. Tämä modulaarinen lähestymistapa on joustava, mutta lisää integrointikompleksisuutta. Vahvuudet: Apache 2.0 -lisenssi, ilmainen kaupalliseen käyttöön Sekä luonti että lukeminen yhdessä kirjastossa Tukee 15+ viivakoodimuotoa QR-koodien lisäksi , todistettu, laaja yhteisön tuntemus 32 miljoonaa + NuGet-latausta Sidontapaketteja saatavilla SkiaSharpille, ImageSharpille, OpenCV:lle ja muille Rajoitukset: QR-koodikohtaiset ominaisuudet ovat perusluonteisia, ei logon upotusta, ei edistyneitä tyylittelyjä Vahingoittuneiden/kiertyneiden QR-koodien lukutarkkuus on kohtalainen verrattuna ML-pohjaisiin ratkaisuihin Sidontapaketit lisäävät riippuvuuksien hallinnan kompleksisuutta API-suunnittelu näyttää vanhanaikaiselta, vähemmän sujuva kuin modernit .NET-kirjastot Aktiivisen ylläpidon tahti on hidastunut (yhteisön ylläpitämä) Projektit, jotka tarvitsevat sekä QR-koodi- että perinteistä viivakooditukea (vähittäiskauppa, logistiikka) ja haluavat ilmaisen, todistetun vaihtoehdon. Jos prioriteettisi on QR-koodikohtaiset ominaisuudet, kuten tyylittely tai ML-pohjainen lukeminen, laajemman viivakoodimuototuen sijaan, erillinen QR-kirjasto palvelee sinua paremmin. Paras: 4. Net.Codecrete.QrCodeGenerator — Kevyt ja standardikeskeinen Net.Codecrete.QrCodeGenerator on Manuel Bleichenbacherin puhdas, minimaalinen QR-koodin luontikirjasto. Se on , joka keskittyy oikeellisuuteen ja standardien noudattamiseen ( ). Project Nayukin Java QR-koodin luontikirjaston .NET-käännös 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); Esimerkki tulosteesta Net.Codecrete.QrCodeGeneratorilla Noin myötä se on hyvin hyväksytty kohdennetuksi kirjastoksi. Sen erottuva laatu on System.Drawingin nollariippuvuus — se luo SVG-, XAML-polkutietoja, PNG- ja BMP-tiedostoja natiivisti. Tämä tekee siitä erinomaisen valinnan alustariippumattomille .NET-projekteille ja ASP.NET Core -palveluille, jotka toimivat Dockerissa. 4,1 miljoonan NuGet-latauksen Vahvuudet: MIT-lisenssi, täysin ilmainen Ei System.Drawing-riippuvuutta, todella alustariippumaton Pieni jalanjälki, nopea luonti SVG- ja XAML-tuloste sisäänrakennettuna (hyödyllinen WPF-, WinUI- ja verkkoskenaarioissa) Kaikkien 40 QR-version ja kaikkien 4 virheenkorjaustason oikea toteutus Laajat esimerkkiprojektit (WinForms, WPF, ASP.NET Core, SkiaSharp, ImageSharp) Rajoitukset: , ei QR-lukutoimintoa Vain luonti Ei logon upotusta tai edistyneitä tyylittelyominaisuuksia Rajoitettu mukauttaminen verrattuna QRCoderin datan generaattoreihin Vähemmän yhteisösisältöä ja tutoriaaleja verrattuna QRCoderiin tai ZXing.Netiin Kehittäjille, jotka tarvitsevat pienen, oikean, alustariippumattoman QR-luontiohjelman SVG-tulostuksella ilman System.Drawing-taakkaa. Jos käyttöönoton kohde on Linux tai Docker ja tarvitset vain luontia, tämä kirjasto ansaitsee vakavan harkinnan. Paras: 5. SkiaSharp.QrCode — Suorituskykyinen alustariippumaton luonti SkiaSharp.QrCode, jonka on tehnyt , on suorituskykyyn keskittyvä QR-luontikirjasto, joka perustuu SkiaSharpiin. Se lu guitarrapc