Buod ng Pagsisiwalat: Kami ang developer relations team sa Iron Software, ang kumpanya sa likod ng IronQR, isa sa mga library sa paghahambing na ito. Gayunpaman, naniniwala kami na ang tapat na mga pagsusuri ay mas nakakatulong sa lahat kaysa sa marketing spin. Ipapakita namin ang aming pamamaraan, kikilalanin ang aming mga pagkiling, at hahayaang magsalita ang code. Pinatakbo namin ang bawat C# QR code library sa ilalim ng magkaparehong mga pamantayan sa pagsusuri: simpleng pagbuo ng QR, pagbabasa ng QR mula sa mga imahe, lalim ng pag-customize, suporta sa cross-platform, at gastos sa lisensya. Narito ang resulta, isang paghahambing ng 11 kapansin-pansing QR code library sa .NET ecosystem, na idinisenyo upang matulungan kang piliin ang tamang isa para sa iyong proyekto sa unang subukan. Narito kung ano ang hitsura ng tatlong linya ng pagbuo ng QR gamit ang sa Visual Studio, isa sa mga library na tatalakayin namin: IronQR gamitin ang IronQr; gamitin ang IronSoftware.Drawing; QrCode qr = QrWriter.Write("https://example.com"); AnyBitmap bitmap = qr.Save(); bitmap.SaveAs("myqr.png"); Halimbawang Output ng IronQR QR Code Ang pagiging simple na iyon ay pangunahing kailangan. Ang totoong tanong ay kung ano ang mangyayari kapag kailangan mong ang isang nasirang QR code mula sa isang warehouse scanner, maglagay ng branded na logo, mag-target ng mga Linux container, o magproseso ng libu-libong code sa isang batch job. Doon nagkakaiba ang mga library, at doon nagiging mahalaga ang paghahambing na ito. basahin Ang TL;DR: Master Comparison Table Bago tayo lumalim, narito ang buong larawan. Nakukuha ng talahanayang ito ang mga dimensyon na pinakamahalaga kapag pumipili ng QR library para sa isang .NET na proyekto. Library Bumuo Basahin Logo/Pag-istilo Micro QR Cross-Platform Lisensya Mga Download sa NuGet IronQR ✅ ✅ Pinapagana ng ML ✅ Buo ✅ + RMQR ✅ Win/Mac/Linux/Mobile Komersyal ($749+) ~56K QRCoder ✅ ❌ ✅ Katamtaman ✅ ⚠️ Bahagyang (System.Drawing) MIT (Libre) ~68M ZXing.Net ✅ ✅ ❌ Minimal ❌ ⚠️ Sa pamamagitan ng mga binding Apache 2.0 (Libre) ~32M Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (Libre) ~4.1M SkiaSharp.QrCode ✅ ❌ ✅ Mga hugis na custom ❌ ✅ MIT (Libre) ~1.2M Aspose.BarCode ✅ ✅ ✅ ✅ ✅ Komersyal ($999+) ~5.4M Syncfusion Barcode ✅ ❌ ✅ Katamtaman ❌ ✅ (UI control) Komersyal (Libreng komunidad) ~2M+ Spire.Barcode ✅ ✅ ✅ Logo embed ❌ ⚠️ (System.Drawing) Komersyal ($599+) ~450K IronBarcode ✅ ✅ ✅ ✅ Micro QR ✅ Win/Mac/Linux Komersyal ($749+) ~1.2M Dynamsoft Barcode Reader ❌ ✅ Mataas ang performance N/A ✅ ✅ Komersyal ($1,249+/taon) ~250K BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (Libre) ~4.5M Talaan 1: Master comparison ng 11 .NET QR code library sa mga pangunahing pamantayan sa pagpili. Ang mga bilang ng download ay tinatayang noong unang bahagi ng 2026. Ang natitirang bahagi ng artikulong ito ay naglalagom sa bawat hilera, na may code, trade-off, at tapat na mga pagtatasa. Paano Namin Sinuri ang Mga Library na Ito? Sinuri namin ang bawat library batay sa pitong pamantayan, na binigyan ng bigat batay sa kung gaano kadalas ito nagtutulak sa mga desisyon sa pagpili sa totoong mundo: — Makakagawa ba ito ng mga QR code mula sa mga string, URL, at naka-istrukturang data (vCards, Wi-Fi credential)? Pagbuo ng QR — Makakapag-decode ba ito ng mga QR code mula sa mga imahe, scan, o PDF? Paano nito hinahawakan ang mga nasira o nakahilig na code? Pagbabasa ng QR — Pag-embed ng logo, kontrol sa kulay, pag-istilo ng hugis ng module, pagsasaayos ng error correction Pag-customize — Standard QR, Micro QR, RMQR (Rectangular Micro QR) Suporta sa Format ng QR — Gumagana ba ito nang malinis sa Windows, Linux, macOS, at sa loob ng Docker container nang walang System.Drawing hacks? Cross-Platform — Open-source kumpara sa komersyal, presyo bawat developer, mga diskwento sa suite Paglilisensya at Gastos — Kalidad ng reference ng API, pagkakaroon ng tutorial, laki ng komunidad, aktibong maintenance Dokumentasyon at Ecosystem Lahat ng mga halimbawa ng code ay nagta-target ng at gumagamit ng mga top-level statement. Kung saan ang .NET 10 ay nagpapakilala ng mga nauugnay na pagpapabuti, itatala namin ang mga ito. .NET 8 (LTS) Aling QR Library ang Dapat Mong Piliin? Isang Framework ng Desisyon Laktawan ang 11 profile ng library sa ibaba kung alam mo na ang iyong mga limitasyon. Narito ang mabilis na daan: → o . Pareho silang may lisensya ng MIT. Ang QRCoder ay may mas maraming renderer at mga katulong sa payload; ang Net.Codecrete ay mas magaan at iniiwasan ang System.Drawing nang buo. "Kailangan kong bumuo ng mga QR code nang libre nang walang mga dependency." QRCoder Net.Codecrete.QrCodeGenerator → (pagbabasa na pinapagana ng ML, pinakamahusay na kawastuhan sa mga nasirang code), (libreng, napatunayan na, pinakamalawak na suporta sa format), o (enterprise suite, mahal). "Kailangan kong bumuo AT magbasa ng mga QR code." IronQR ZXing.Net Aspose.BarCode → , , o . Lahat ng tatlo ay umiiwas sa System.Drawing dependency na sumisira sa mga cross-platform deployment. "Nagde-deploy ako sa Linux/Docker at hindi magagamit ang System.Drawing." IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → Nangunguna ang sa mga benchmark ng raw generation. Para sa performance ng pagbabasa, ang ay partikular na idinisenyo para sa high-throughput scanning. "Kritikal ang performance at memory footprint." SkiaSharp.QrCode Dynamsoft Barcode Reader → Gamitin kung ano ang mayroon ka. Ang pagdaragdag ng QR library ng ibang vendor kapag kasama na ang iyong suite ay bihira nang magkaroon ng kahulugan mula sa pananaw ng paglilisensya o maintenance. "Gumagamit na ako ng Aspose/Syncfusion/Iron Software suite." → Ang ay may mga gabay sa pag-integrate ng MAUI at Blazor. Si Microsoft MVP Jeff Fritz gamit ang IronQR na may Blazor, isang tunay na halimbawa ng eksaktong pattern na ito. "Bumubuo ako ng Blazor/MAUI mobile app na may QR scanning." IronQR ay gumawa ng QR-based digital business card app Ang 11 .NET QR Code Library na Pinaghambing 1. IronQR — Pagbabasa at Pagbuo ng QR na Pinapagana ng ML na may Suporta sa Cross Platform Ang IronQR ay ang dedikadong QR code library ng Iron Software, hiwalay sa kanilang mas malawak na produkto na IronBarcode. Ang natatanging tampok nito ay isang machine learning model (batay sa ) na nakakadetect at nakakabasa ng mga QR code mula sa mga hindi perpektong imahe, nakahilig, bahagyang nakatago, o kinunan sa mga kakaibang anggulo, kadalasan sa ilang linya lamang ng code. ONNX May kakayahan din itong lumikha ng mga QR code object nang madali, na may suporta sa pag-istilo ng mga QR code gamit ang mga imahe, pagdaragdag ng mga custom na kulay, at pag-save ng iyong QR image sa iba't ibang output format. Pagbuo: gamitin ang IronQr; gamitin ang IronSoftware.Drawing; // Bumuo ng naka-istilong QR code na may 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"); Output ng IronQR Generated QR Pagbabasa: gamitin ang IronQr; gamitin ang 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}"); Output ng IronQR Read Ang ML model ang nagpapahiwalay sa IronQR mula sa lahat ng iba pang library sa listahang ito. Sa aming pagsubok, matagumpay nitong na-decode ang mga QR code mula sa mga larawan ng conference badge at mga angled screenshot ng smartphone kung saan ang ZXing.Net at mga basic image-processing reader ay walang naibalik. Ang trade-off ay ang laki ng package, ang ONNX model ay nagdaragdag ng bigat. Kung hindi mo kailangan ng pagbabasa, ang IronQR.Slim ay nagpapadala nang walang ML model at mas magaan. Mga Kalakasan: Ang pagbabasa na pinapagana ng ML ay humahawak sa mga nasira, nakahilig, at bahagyang nakatagong QR code at inuuna ang kawastuhan Sinusuportahan ang mga format ng QR Code, Micro QR, at RMQR (Rectangular Micro QR) Buong styling API: mga kulay, logo, bilugang module, mga margin Cross-platform: Windows, macOS, Linux, iOS, Android, Docker, Azure, AWS Suporta sa asynchronous na pagbabasa (ReadAsync) para sa mga server workload I-save sa maraming format tulad ng PNG image, JPG, multi page TIFF, at higit pa Ang user-friendly API ay ginagawang madaling gamitin Mga Limitasyon: Kinakailangan ang komersyal na lisensya ($749+ bawat developer para sa deployment) Mas mabigat ang buong package kaysa sa mga open-source na alternatibo dahil sa ML model Mas mababa ang bilang ng download sa kaysa sa mga mature na open-source na opsyon, mas bagong produkto (inilunsad ~2023) NuGet Ang mga proyektong pang-generation lang ay maaaring hindi kailanganin ang ML overhead Mga proyekto na nangangailangan ng pagbuo at pagbabasa, lalo na kung saan hindi perpekto ang mga kundisyon ng pag-scan (mga mobile app, warehouse scanning, mga sitwasyon sa conference/event). Ipinapakita ng ang IronQR na humahawak ng real-time na pagbuo ng QR gamit ang Blazor at custom na branding. Pinakamahusay para sa: case study ng Jeff Fritz QR business card 2. — Ang Pinakasikat na Open-Source QR Generator QRCoder Ang QRCoder library ang nag-iisang pinakamaraming na-download na QR code package sa NuGet, na may . Orihinal na ginawa ni Raffael Herrmann noong 2013 at ngayon ay , ito ay isang purong C# na implementasyon na nakatuon lamang sa pagbuo ng QR code (hindi pagbabasa). mahigit 68 milyong download pinapanatili ni Shane32 gamitin ang QRCoder; // Bumuo ng QR code at i-save bilang 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); Output ng QRCoder Image Nagbibigay ang QRCoder ng maraming renderer: PngByteQRCode (cross-platform, walang System.Drawing dependency), QRCode (batay sa System.Drawing, Windows lang), SvgQRCode, AsciiQRCode, at higit pa. Kasama rin dito ang mga payload generator para sa naka-istrukturang data tulad ng Wi-Fi credential, vCard, at bookmark, na nakakatipid sa iyo mula sa manu-manong pag-format ng mga string na iyon. Mga Kalakasan: Lisensya ng MIT, ganap na libre para sa komersyal na paggamit 68M+ na download sa NuGet, malaking pagtanggap ng komunidad at napatunayan na katatagan Maraming pagpipilian sa renderer kabilang ang isang PngByteQRCode na umiiwas sa System.Drawing Built-in na mga payload generator (Wi-Fi, vCard, geolocation, mga kaganapan sa kalendaryo) Suporta sa Micro QR code Walang mga dependency sa mga target ng .NET Standard Mga Limitasyon: , hindi mababasa o ma-decode ang mga QR code image file Pang-generation lang Ang ilang renderer (tulad ng QRCode) ay nakadepende sa System.Drawing.Common, na Windows lang mula noong .NET 6 Walang built-in na pag-embed ng logo (kailangan mong i-composite ang imahe nang mag-isa) Walang advanced na pag-istilo (mga hugis ng module, mga gradient) Mga proyekto na nangangailangan lamang ng pagbuo ng QR, lalo na kapag zero ang badyet. Kung kailangan mong bumuo ng mga Wi-Fi QR code o vCard at hindi mo kailangang basahin ang mga code, ang QRCoder ay ang praktikal na default na pagpipilian para sa karamihan ng mga .NET developer. Pinakamahusay para sa: 3. — Ang Swiss Army Knife ng mga Barcode Library ZXing.Net ("Zebra Crossing") ay ang ng orihinal na Java ZXing library. Ito ay isang general-purpose barcode library na sumusuporta sa mahigit 15 format, QR Code, Data Matrix, Aztec, PDF 417, UPC, EAN, Code 128, at higit pa. Ang suporta sa QR ay isang subset ng mas malawak nitong mga kakayahan. ZXing.Net port sa .NET gamitin ang ZXing; gamitin ang ZXing.Common; gamitin ang ZXing.QrCode; // Bumuo ng QR code var writer = new BarcodeWriterPixelData { Format = BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Height = 250, Width = 250, Margin = 1 } }; var pixelData = writer.Write("https://example.com"); // Ang pagbabasa ng QR code ay nangangailangan ng binding package (hal., ZXing.Net.Bindings.SkiaSharp) Output ng ZXing.Net Nangangailangan ang ZXing.Net ng mga platform-specific na binding package para sa rendering at reading. Ang core package ay nagbibigay ng encoding/decoding logic; nagdaragdag ka ng ZXing.Net.Bindings.Windows.Compatibility, ZXing.Net.Bindings.SkiaSharp, o ZXing.Net.Bindings.ImageSharp depende sa iyong target platform. Ang modular na diskarte na ito ay flexible ngunit nagdaragdag ng pagiging kumplikado sa pag-integrate. Mga Kalakasan: Lisensya ng Apache 2.0, libre para sa komersyal na paggamit Pagbuo at pagbabasa sa iisang library Sumusuporta sa 15+ barcode format lampas sa QR code , napatunayan na, malawak na kaalaman sa komunidad 32M+ na download sa NuGet Available ang mga binding para sa SkiaSharp, ImageSharp, OpenCV, at higit pa Mga Limitasyon: Basic ang mga feature na partikular sa QR, walang pag-embed ng logo, walang advanced na pag-istilo Ang kawastuhan ng pagbabasa sa mga nasira/nakahilig na QR code ay katamtaman kumpara sa mga solusyong pinapagana ng ML Ang mga binding package ay nagdaragdag ng pagiging kumplikado sa pamamahala ng dependency Ang disenyo ng API ay nagpapakita ng edad nito, hindi kasing-fluent ng mga modernong .NET library Mabagal na pace ng aktibong maintenance (pinapanatili ng komunidad) Mga proyekto na nangangailangan ng parehong suporta para sa QR code at tradisyonal na barcode (retail, logistics) at gusto ng libre, napatunayan na opsyon. Kung ang iyong prayoridad ay mga feature na partikular sa QR tulad ng pag-istilo o pagbabasa na pinapagana ng ML kaysa sa malawak na suporta sa format ng barcode, mas mahusay kang pagsisilbihan ng isang dedikadong QR library. Pinakamahusay para sa: 4. Net.Codecrete.QrCodeGenerator — Magaan at Nakatuon sa Pamantayan Ang Net.Codecrete.QrCodeGenerator ay isang malinis, minimal na QR code generation library ni Manuel Bleichenbacher. Ito ay isang , na nakatuon sa kawastuhan at pagsunod sa pamantayan ( ). .NET translation ng Java QR code generator ng Project Nayuki ISO/IEC 18004 gamitin ang Net.Codecrete.QrCodeGenerator; var qr = QrCode.EncodeText("https://example.com", QrCode.Ecc.Medium); string svg = qr.ToSvgString(4); File.WriteAllText("output.svg", svg); Halimbawang Output gamit ang Net.Codecrete.QrCodeGenerator Sa , ito ay mahusay na natanggap para sa isang nakatuong library. Ang natatanging kalidad nito ay walang dependency sa System.Drawing — ito ay bumubuo ng SVG, XAML path data, PNG, at BMP nang native. Ginagawa nitong isang mahusay na pagpipilian para sa mga cross-platform na .NET na proyekto at mga serbisyo ng ASP.NET Core na tumatakbo sa Docker. ~4.1 milyong download sa NuGet Mga Kalakasan: Lisensya ng MIT, ganap na libre Walang System.Drawing dependency, tunay na cross-platform Maliit na footprint, mabilis na pagbuo Built-in na SVG at XAML output (kapaki-pakinabang para sa mga sitwasyon ng WPF, WinUI, at web) Tamang implementasyon ng lahat ng 40 bersyon ng QR at lahat ng 4 na antas ng error correction Malawak na mga halimbawang proyekto (WinForms, WPF, ASP.NET Core, SkiaSharp, ImageSharp) Mga Limitasyon: , walang kakayahang magbasa ng QR Pang-generation lang Walang pag-embed ng logo o mga advanced na feature sa pag-istilo Limitadong pag-customize kumpara sa mga payload generator ng QRCoder Mas kaunting nilalaman sa komunidad at mga tutorial kumpara sa QRCoder o ZXing.Net Mga developer na nangangailangan ng maliit, tama, cross-platform na QR generator na may SVG output at walang System.Drawing na pasanin. Kung ang iyong deployment target ay Linux o Docker at kailangan mo lang ng generation, ang library na ito ay karapat-dapat sa seryosong pagsasaalang-alang. Pinakamahusay para sa: 5. SkiaSharp.QrCode — Mataas na Performance na Cross-Platform Generation Ang SkiaSharp.QrCode ni ay isang performance-focused na QR generation library na binuo sa SkiaSharp. Ito ay partikular na nilikha upang iwasan ang mga limitasyon ng GDI+ ng System.Drawing habang naghahatid ng native-level performance sa pamamagitan ng hardware acceleration ng SkiaSharp. guitarrapc gamitin ang SkiaSharp.QrCode.Image; // One-liner: bumuo at i-save QRCodeImageBuilder.SavePng("https://example.com", "qrcode.png"); // O may mga custom na setting var pngBytes = new QRCodeImageBuilder("https://example.com") .WithSize(512, 512) .WithErrorCorrection(ECCLevel.H) .ToByteArray(); Output ng SkiaSharp.QrCode One-Liner Ang mga resulta ng benchmark mula sa repositoryo ng proyekto ay nagpapakita na ang SkiaSharp.QrCode ay mas mahusay kaysa sa QRCoder at iba pang .NET QR library sa bilis at memory allocation para sa mga gaw