< Visų pirma: mes esame „Iron Software“ kūrėjų santykių komanda, kurianti „IronQR“ biblioteką, kurią lyginame. Atsižvelgdami į tai, tikime, kad sąžiningi vertinimai visiems naudingesni nei rinkodaros triukai. Parodysime savo metodiką, pripažinsime savo šališkumą ir leisime kodui kalbėti pačiam už save. Kiekvieną C# QR kodo biblioteką vertinome pagal tuos pačius kriterijus: paprastas QR kodų generavimas, QR kodų skaitymas iš vaizdų, pritaikymo galimybių gylis, kelių platformų palaikymas ir licencijavimo kaina. Žemiau pateikiama 11 reikšmingų QR kodų bibliotekų .NET ekosistemoje, kurios padės jums iš karto pasirinkti tinkamą savo projektui. Štai kaip atrodo trys eilutės QR kodo generavimo naudojant „ “ „Visual Studio“ aplinkoje, vienoje iš bibliotekų, kurias nagrinėsime: IronQR using IronQr; using IronSoftware.Drawing; QrCode qr = QrWriter.Write("https://example.com"); AnyBitmap bitmap = qr.Save(); bitmap.SaveAs("myqr.png"); „IronQR“ pavyzdinis QR kodo išvedimas Šis paprastumas yra savaime suprantamas. Tikrasis klausimas yra tai, kas nutinka, kai reikia sugadintą QR kodą iš sandėlio skaitytuvo, įterpti firminį logotipą, taikyti Linux konteinerius arba apdoroti tūkstančius kodų partijos darbe. Čia bibliotekos skiriasi ir čia šis palyginimas pasiteisina. skaityti Trumpai: Pagrindinė palyginimo lentelė Prieš pereidami prie detalių, pateikiame visą paveikslą. Ši lentelė apima svarbiausius matmenis renkantis QR biblioteką .NET projektui. Biblioteka Generuoti Skaityti Logotipas/Stilius Mikro QR Kelių platformų Licencija NuGet atsisiuntimai IronQR ✅ ✅ ML pagrindu ✅ Pilnas ✅ + RMQR ✅ Win/Mac/Linux/Mobile Komercinė (nuo 749 USD) ~56K QRCoder ✅ ❌ ✅ Vidutinis ✅ ⚠️ Dalinis (System.Drawing) MIT (nemokama) ~68M ZXing.Net ✅ ✅ ❌ Minimalus ❌ ⚠️ Per jungtis Apache 2.0 (nemokama) ~32M Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (nemokama) ~4.1M SkiaSharp.QrCode ✅ ❌ ✅ Pasirinktinės formos ❌ ✅ MIT (nemokama) ~1.2M Aspose.BarCode ✅ ✅ ✅ ✅ ✅ Komercinė (nuo 999 USD) ~5.4M Syncfusion Barcode ✅ ❌ ✅ Vidutinis ❌ ✅ (UI valdiklis) Komercinė (nemokama bendruomenės) ~2M+ Spire.Barcode ✅ ✅ ✅ Logotipo įterpimas ❌ ⚠️ (System.Drawing) Komercinė (nuo 599 USD) ~450K IronBarcode ✅ ✅ ✅ ✅ Mikro QR ✅ Win/Mac/Linux Komercinė (nuo 749 USD) ~1.2M Dynamsoft Barcode Reader ❌ ✅ Didelis našumas N/A ✅ ✅ Komercinė (nuo 1 249 USD / m.) ~250K BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (nemokama) ~4.5M 1 lentelė: Pagrindinis 11 .NET QR kodų bibliotekų palyginimas pagal pagrindinius pasirinkimo kriterijus. Atsisiuntimų skaičius yra apytikslis 2026 m. pradžioje. Likusi šio straipsnio dalis detaliai nagrinėja kiekvieną eilutę, pateikiant kodą, kompromisus ir sąžiningus vertinimus. Kaip vertinome šias bibliotekas? Kiekvieną biblioteką vertinome pagal septynis kriterijus, svertus pagal tai, kaip dažnai jie lemia realius pasirinkimo sprendimus: — Ar ji gali sukurti QR kodus iš tekstų, URL, struktūrizuotų duomenų (vCards, „Wi-Fi“ kredencialai)? QR kodų generavimas — Ar ji gali dekoduoti QR kodus iš vaizdų, nuskaitymų ar PDF? Kaip ji tvarko sugadintus ar pasuktus kodus? QR kodų skaitymas — Logotipo įterpimas, spalvų valdymas, modulių formos stilius, klaidų taisymo konfigūracija Pritaikymas — Standartinis QR, Mikro QR, RMQR (stačiakampis Mikro QR) QR formatų palaikymas — Ar ji tinkamai veikia „Windows“, „Linux“, „macOS“ ir „Docker“ konteineriuose be „System.Drawing“ pataisymų? Kelių platformų palaikymas — Atvirasis šaltinis prieš komercinę, mokestis už kūrėją, komplektų nuolaidos Licencijavimas ir kaina — API nuorodų kokybė, pamokų prieinamumas, bendruomenės dydis, aktyvus palaikymas Dokumentacija ir ekosistema Visi kodų pavyzdžiai orientuoti į ir naudoja aukščiausio lygio pareiškimus. Kai „.NET 10“ pristato reikšmingus patobulinimus, mes juos pažymime. „.NET 8 (LTS)“ Kurią QR biblioteką pasirinkti? Sprendimų sistema Praleiskite 11 bibliotekų profilių žemiau, jei jau žinote savo apribojimus. Štai greitasis kelias: → arba . Abi turi MIT licenciją. QRCoder turi daugiau atvaizduotojų ir naudingumo funkcijų; Net.Codecrete yra lengvesnė ir visiškai vengia System.Drawing. „Man reikia nemokamai generuoti QR kodus be jokių priklausomybių.“ QRCoder Net.Codecrete.QrCodeGenerator → (ML pagrindu skaitymas, geriausias tikslumas sugadintiems kodams), (nemokama, patikrinta, plačiausias formatų palaikymas) arba (įmonės komplektas, brangus). „Man reikia tiek generuoti, tiek skaityti QR kodus.“ IronQR ZXing.Net Aspose.BarCode → , arba . Visos trys vengia System.Drawing priklausomybės, kuri trukdo diegti keliose platformose. „Diegiu į Linux/Docker ir negaliu naudoti System.Drawing.“ IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → pirmauja tarp paprasto generavimo našumo rodiklių. Skaitymo našumui, yra specialiai sukurtas didelio srauto skenavimui. „Našumas ir atminties naudojimas yra kritiniai.“ SkiaSharp.QrCode Dynamsoft Barcode Reader → Naudokite tai, ką turite. Kito tiekėjo QR bibliotekos pridėjimas, kai jūsų komplekte jau yra viena, retai turi prasmės licencijavimo ar palaikymo požiūriu. „Aš jau naudoju Aspose/Syncfusion/Iron Software komplektą.“ → turi aiškias MAUI ir Blazor integracijos vadoves. „Microsoft MVP Jeff Fritz“ naudodamas IronQR su Blazor, tai realus šio būtent šio modelio pavyzdys. „Kurti Blazor/MAUI mobiliąją programėlę su QR skenavimu.“ IronQR sukūrė skaitmeninę QR kodų vizitinę kortelę Palyginamos 11 .NET QR kodų bibliotekų 1. IronQR — ML pagrindu veikiantis QR kodų skaitymas ir generavimas keliose platformose „IronQR“ yra „Iron Software“ skirta QR kodų biblioteka, atskirta nuo jų platesnės „IronBarcode“ produkto. Jos išskirtinė funkcija yra mašininio mokymosi modelis (pagrįstas ), kuris aptinka ir skaito QR kodus iš ne visai tobulų vaizdų, pasuktų, iš dalies uždengtų ar nufotografuotų keistais kampais, dažnai vos keliais kodų eilutėmis. ONNX Ji taip pat gali lengvai kurti QR kodų objektus, su galimybe stilizuoti QR kodus vaizdais, pridėti pasirinktines spalvas ir išsaugoti jūsų QR vaizdą įvairiais formatais. Generavimas: using IronQr; using IronSoftware.Drawing; // Generuoti stilizuotą QR kodą su logotipu 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“ sugeneruoto QR kodo išvedimas Skaitymas: 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“ skaitymo išvedimas ML modelis yra tai, kas skiria „IronQR“ nuo visų kitų bibliotekų šiame sąraše. Mūsų testavimo metu ji sėkmingai dekodavo QR kodus iš konferencijos ženklelių nuotraukų ir pasuktų išmaniajio telefono ekrano kopijų, kai „ZXing.Net“ ir pagrindiniai vaizdo apdorojimo skaitytuvai nieko nerado. Kompromisas yra paketo dydis, ONNX modelis prideda svorio. Jei nereikia skaitymo, „IronQR.Slim“ pristatoma be ML modelio ir yra žymiai lengvesnė. Privalumai: ML pagrindu veikiantis skaitymas tvarko sugadintus, pasuktus ir iš dalies uždengtus QR kodus ir teikia pirmenybę tikslumui Palaiko QR kodo, Mikro QR ir RMQR (stačiakampio Mikro QR) formatus Pilna stiliaus API: spalvos, logotipai, suapvalinti moduliai, paraštės Kelių platformų palaikymas: „Windows“, „macOS“, „Linux“, „iOS“, „Android“, „Docker“, „Azure“, „AWS“ Asinchroninis skaitymo palaikymas („ReadAsync“) serverio darbo krūviams Išsaugoti įvairiais formatais, tokiais kaip PNG, JPG, daugialapis TIFF ir kt. Patogi API leidžia lengvai naudoti Trūkumai: Reikalinga komercinė licencija (nuo 749 USD už kūrėją diegimui) Visas paketas yra sunkesnis nei atvirojo kodo alternatyvos dėl ML modelio „NuGet“ atsisiuntimų skaičius yra mažesnis nei brandžių atvirojo kodo parinkčių, naujesnis produktas (pristatytas ~2023 m.) Tik generavimui skirtiems projektams gali neprireikti ML pertekliaus Projektams, kuriems reikia ir generavimo, ir skaitymo, ypač kai skenavimo sąlygos yra netobulos (mobiliosios programėlės, sandėlio skenavimas, konferencijų/renginių scenarijai). „ demonstruoja „IronQR“ realiu laiku generuojant QR kodus su Blazor ir pasirinktiniu prekės ženklu. Geriausiai tinka: Jeff Fritz QR vizitinės kortelės“ atvejis“ 2. „ “ — Populiariausias atvirojo kodo QR generatorius QRCoder „QRCoder“ biblioteka yra populiariausias QR kodų paketas „NuGet“, turintis . Iš pradžių sukurtas Raffael Herrmann 2013 m. ir dabar , tai gryna C# implementacija, orientuota tik į QR kodų (ne skaitymą). per 68 milijonus atsisiuntimų palaikomas Shane32 generavimą using QRCoder; // Generuoti QR kodą ir išsaugoti kaip PNG baitus 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“ išvedimo vaizdas „QRCoder“ siūlo kelis atvaizduotojus: „PngByteQRCode“ (kelių platformų, be „System.Drawing“ priklausomybės), „QRCode“ („System.Drawing“ pagrindu, tik „Windows“), „SvgQRCode“, „AsciiQRCode“ ir kt. Ji taip pat apima naudingumo funkcijas struktūrizuotiems duomenims, tokiems kaip „Wi-Fi“ kredencialai, vCards ir žymės, todėl nereikia jų formatuoti rankiniu būdu. Privalumai: MIT licencija, visiškai nemokama komerciniam naudojimui 68M+ „NuGet“ atsisiuntimų, didelis bendruomenės priėmimas ir įrodyta stabilumas Kelių atvaizduotojų pasirinkimai, įskaitant „PngByteQRCode“, kuris vengia „System.Drawing“ Integruotos naudingumo funkcijos (Wi-Fi, vCard, geografinė vieta, kalendoriaus įvykiai) Mikro QR kodo palaikymas Nėra priklausomybių nuo „.NET Standard“ tikslų Trūkumai: , negali skaityti ar dekoduoti QR kodų vaizdo failų Tik generavimas Kai kurie atvaizduotojai (pvz., „QRCode“) priklauso nuo „System.Drawing.Common“, kuris nuo „.NET 6“ yra tik „Windows“ Nėra integruoto logotipo įterpimo (vaizdą reikėtų apjungti savarankiškai) Nėra pažangių stiliaus parinkčių (modulių formos, gradientai) Projektams, kuriems reikia tik QR kodų generavimo, ypač kai biudžetas yra nulis. Jei reikia generuoti „Wi-Fi“ QR kodus ar vCards ir visai nereikia skaityti kodų, „QRCoder“ yra pragmatiškas pasirinkimas daugeliui .NET kūrėjų. Geriausiai tinka: 3. — „Swiss Army Knife“ braižybos kodų bibliotekų ZXing.Net („Zebra Crossing“) yra originalios Java ZXing bibliotekos . Tai bendrosios paskirties braižybos kodų biblioteka, palaikanti daugiau nei 15 formatų, QR kodą, Data Matrix, Aztec, PDF 417, UPC, EAN, Code 128 ir kt. QR palaikymas yra jos platesnių galimybių dalis. ZXing.Net .NET prievadas using ZXing; using ZXing.Common; using ZXing.QrCode; // Generuoti 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"); // QR kodų skaitymui reikalingas jungčių paketas (pvz., ZXing.Net.Bindings.SkiaSharp) ZXing.Net išvedimas „ZXing.Net“ reikalauja platformai specifinių jungčių paketų atvaizdavimui ir skaitymui. Pagrindinis paketas teikia kodavimo/dekodavimo logiką; jūs pridedate „ZXing.Net.Bindings.Windows.Compatibility“, „ZXing.Net.Bindings.SkiaSharp“ arba „ZXing.Net.Bindings.ImageSharp“, atsižvelgdami į jūsų tikslinę platformą. Šis modulinis metodas yra lankstus, tačiau padidina integracijos sudėtingumą. Privalumai: Apache 2.0 licencija, nemokama komerciniam naudojimui Tiek generavimas, tiek skaitymas vienoje bibliotekoje Palaiko 15+ braižybos kodų formatų, ne tik QR kodus , patikrinta, plati bendruomenės žinių bazė 32M+ „NuGet“ atsisiuntimų Galimos jungtys SkiaSharp, ImageSharp, OpenCV ir kt. Trūkumai: QR specifinės funkcijos yra pagrindinės, nėra logotipo įterpimo, nėra pažangių stiliaus parinkčių Skaitymo tikslumas sugadintiems/pasuktiems QR kodams yra vidutinis, palyginti su ML pagrindu veikiančiais sprendimais Jungčių paketai padidina priklausomybių valdymo sudėtingumą API dizainas rodo savo amžių, mažiau sklandus nei šiuolaikinės .NET bibliotekos Aktyvus palaikymo tempas sulėtėjo (palaikoma bendruomenės) Projektams, kuriems reikia tiek QR kodų, tiek tradicinių braižybos kodų palaikymo (mažmeninė prekyba, logistika) ir norima nemokamos, patikrintos parinkties. Jei jūsų prioritetas yra QR specifinės funkcijos, tokios kaip stilius ar ML pagrindu veikiantis skaitymas, o ne plati braižybos kodų formatų aprėptis, skirta QR biblioteka bus naudingesnė. Geriausiai tinka: 4. Net.Codecrete.QrCodeGenerator — Lengvas ir standartus atitinkantis „Net.Codecrete.QrCodeGenerator“ yra švari, minimali QR kodų generavimo biblioteka, sukurta Manuel Bleichenbacher. Tai , sutelktas į teisingumą ir standartų atitiktį ( ). .NET portalas iš „Project Nayuki“ Java QR kodų generatoriaus 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); Pavyzdinis „Net.Codecrete.QrCodeGenerator“ išvedimas Su ji yra gerai priimta kaip specializuota biblioteka. Jos išskirtinė kokybė yra nulis priklausomybių nuo „System.Drawing“ — ji natyviai generuoja SVG, XAML kelių duomenis, PNG ir BMP. Tai daro ją puikiu pasirinkimu kelioms platformoms skirtiems .NET projektams ir ASP.NET Core tarnyboms, veikiančioms „Docker“. ~4,1 milijono „NuGet“ atsisiuntimų Privalumai: MIT licencija, visiškai nemokama Nėra System.Drawing priklausomybės, tikrai kelioms platformoms Mažas dydis, greitas generavimas Integruotas SVG ir XAML išvedimas (naudingas WPF, WinUI ir žiniatinklio scenarijams) Teisinga visų 40 QR versijų ir visų 4 klaidų taisymo lygių implementacija Platus pavyzdinių projektų pasirinkimas (WinForms, WPF, ASP.NET Core, SkiaSharp, ImageSharp) Trūkumai: , nėra QR kodų skaitymo galimybės Tik generavimas Nėra logotipo įterpimo ar pažangių stiliaus funkcijų Ribotas pritaikymas, palyginti su QRCoder naudingumo funkcijomis Mažiau bendruomenės turinio ir pamokų, palyginti su QRCoder ar ZXing.Net Kūrėjams, kuriems reikalingas nedidelis, teisingas, kelioms platformoms skirtas QR generatorius su SVG išvedimu ir be System.Drawing naštos. Jei jūsų diegimo tikslas yra Linux ar Docker ir jums reikia tik generavimo, ši biblioteka nusipelno rimto dėmesio. Geriausiai tinka: 5. SkiaSharp.QrCode — Didelio našumo kelioms platformoms skirtas generavimas „SkiaSharp.QrCode“ iš yra našumui orientuota QR generavimo biblioteka, sukurta ant „SkiaSharp“. Ji buvo sukurta specialiai, siekiant išvengti „System.Drawing“ GDI+ apribojimų, tuo pačiu užtikrinant gimtosios kalbos našumą per „SkiaSharp“ techninės įrangos greitinimą. guitarrapc