```html Plná transparentnosť: sme tím vývojárskych vzťahov v Iron Software, spoločnosti za IronQR, jednou z knižníc v tejto porovnávacej štúdii. To znamená, že veríme, že úprimné hodnotenia slúžia všetkým lepšie ako marketingové frázy. Ukážeme našu metodiku, priznáme naše zaujatosti a necháme kód hovoriť sám za seba. Každú knižnicu na generovanie QR kódov v jazyku C# sme otestovali podľa rovnakých kritérií: jednoduché generovanie QR kódov, čítanie QR kódov z obrázkov, hĺbka prispôsobenia, podpora multiplatformových systémov a náklady na licenciu. Nižšie uvádzame výsledok – porovnanie 11 pozoruhodných knižníc na generovanie QR kódov v ekosystéme .NET, navrhnuté tak, aby vám pomohli vybrať tú správnu pre váš projekt na prvý pokus. Tu vyzerá generovanie QR kódu v troch riadkoch pomocou vo Visual Studio, jednej z knižníc, ktoré budeme rozoberať: IronQR using IronQr; using IronSoftware.Drawing; QrCode qr = QrWriter.Write("https://example.com"); AnyBitmap bitmap = qr.Save(); bitmap.SaveAs("myqr.png"); Príklad výstupu QR kódu IronQR Táto jednoduchosť je základ. Skutočná otázka je, čo sa stane, keď potrebujete poškodený QR kód zo skladového skenera, vložiť značkové logo, zacieliť na linuxové kontajnery alebo spracovať tisíce kódov v dávkovom procese. Tu sa knižnice líšia a tu toto porovnanie zarobí na seba. čítať TL;DR: Hlavná porovnávacia tabuľka Predtým, ako sa ponoríme do detailov, tu je úplný obraz. Táto tabuľka zachytáva rozmery, ktoré sú najdôležitejšie pri výbere knižnice QR pre projekt .NET. Knižnica Generovať Čítať Logo/Štýlovanie Mikro QR Multiplatformové Licencia Stiahnutia z NuGetu IronQR ✅ ✅ s podporou ML ✅ Plná ✅ + RMQR ✅ Win/Mac/Linux/Mobil Komerčná (749 $ +) ~56 tisíc QRCoder ✅ ❌ ✅ Stredná ✅ ⚠️ Čiastočne (System.Drawing) MIT (Zadarmo) ~68 mil. ZXing.Net ✅ ✅ ❌ Minimálne ❌ ⚠️ Cez väzby Apache 2.0 (Zadarmo) ~32 mil. Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (Zadarmo) ~4,1 mil. SkiaSharp.QrCode ✅ ❌ ✅ Vlastné tvary ❌ ✅ MIT (Zadarmo) ~1,2 mil. Aspose.BarCode ✅ ✅ ✅ ✅ ✅ Komerčná (999 $ +) ~5,4 mil. Syncfusion Barcode ✅ ❌ ✅ Stredná ❌ ✅ (UI ovládací prvok) Komerčná (zadarmo pre komunitu) ~2 mil. + Spire.Barcode ✅ ✅ ✅ Vloženie loga ❌ ⚠️ (System.Drawing) Komerčná (599 $ +) ~450 tisíc IronBarcode ✅ ✅ ✅ ✅ Mikro QR ✅ Win/Mac/Linux Komerčná (749 $ +) ~1,2 mil. Dynamsoft Barcode Reader ❌ ✅ Vysoký výkon N/A ✅ ✅ Komerčná (1 249 $ +/rok) ~250 tisíc BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (Zadarmo) ~4,5 mil. Tabuľka 1: Hlavné porovnanie 11 .NET knižníc QR kódov podľa kľúčových kritérií výberu. Počty stiahnutí sú približné k začiatku roka 2026. Zvyšok tohto článku rozoberá každý riadok s kódom, kompromismi a úprimnými hodnoteniami. Ako sme hodnotili tieto knižnice? Každú knižnicu sme hodnotili podľa siedmich kritérií, vážených podľa toho, ako často ovplyvňujú rozhodnutia o výbere v reálnom svete: — Dokáže vytvoriť QR kódy z reťazcov, URL adries a štruktúrovaných údajov (vCard, poverenia Wi-Fi)? Generovanie QR kódov — Dokáže dekódovať QR kódy z obrázkov, skenov alebo PDF? Ako si poradí s poškodenými alebo otočenými kódmi? Čítanie QR kódov — Vkladanie loga, ovládanie farieb, štýlovanie tvarov modulov, konfigurácia korekcie chýb Prispôsobenie — Štandardný QR, Mikro QR, RMQR (obdĺžnikový Mikro QR) Podpora formátov QR — Funguje bez problémov na Windows, Linux, macOS a v Docker kontajneroch bez hackov so System.Drawing? Multiplatformové — Open-source vs. komerčné, cena za vývojára, zľavy na balíky Licencovanie a náklady — Kvalita referenčného API, dostupnosť tutoriálov, veľkosť komunity, aktívna údržba Dokumentácia a ekosystém Všetky príklady kódu zacielia na a používajú príkazy najvyššej úrovne. Tam, kde .NET 10 predstavuje relevantné vylepšenia, ich zaznamenávame. .NET 8 (LTS) Ktorú knižnicu QR si vybrať? Rámec rozhodovania Preskočte profily 11 knižníc nižšie, ak už poznáte svoje obmedzenia. Tu je rýchla cesta: → alebo . Obe majú licenciu MIT. QRCoder má viac vykresľovačov a pomocníkov pre payloady; Net.Codecrete je ľahší a úplne sa vyhýba System.Drawing. „Potrebujem generovať QR kódy zadarmo s nulovými závislosťami.“ QRCoder Net.Codecrete.QrCodeGenerator → (čítanie s podporou ML, najlepšia presnosť na poškodených kódoch), (zadarmo, osvedčené, najširšia podpora formátov) alebo (podnikový balík, drahý). „Potrebujem generovať AJ čítať QR kódy.“ IronQR ZXing.Net Aspose.BarCode → , alebo . Všetky tri sa vyhýbajú závislosti System.Drawing, ktorá narúša multiplatformové nasadenia. „Nasadzujem na Linux/Docker a nemôžem používať System.Drawing.“ IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → vedie v benchmarkoch surového generovania. Pre výkon čítania je špeciálne navrhnutý pre vysokorýchlostné skenovanie. „Výkon a využitie pamäte sú kritické.“ SkiaSharp.QrCode Dynamsoft Barcode Reader → Použite to, čo máte. Pridanie QR knižnice od iného dodávateľa, keď váš balík už jednu obsahuje, zriedka dáva zmysel z hľadiska licencovania alebo údržby. „Už používam balík Aspose/Syncfusion/Iron Software.“ → má explicitné sprievodcovia integráciou pre MAUI a Blazor. Microsoft MVP Jeff Fritz pomocou IronQR s Blazor, čo je príklad z reálneho sveta presne tohto vzoru. „Staviam aplikáciu Blazor/MAUI pre mobilné zariadenia so skenovaním QR kódov.“ IronQR vytvoril aplikáciu s QR kódom ako digitálnou vizitkou Porovnanie 11 .NET knižníc QR kódov 1. IronQR — Čítanie a generovanie QR kódov s podporou ML a multiplatformovou podporou IronQR je špecializovaná knižnica na QR kódy od spoločnosti Iron Software, oddelená od ich širšieho produktu IronBarcode. Jej výnimočnou funkciou je model strojového učenia (založený na ), ktorý detekuje a číta QR kódy z nedokonalých obrázkov, otočených, čiastočne zakrytých alebo odfotených z rôznych uhlov, často len v niekoľkých riadkoch kódu. ONNX Je tiež schopná ľahko vytvárať objekty QR kódov s podporou štýlovania QR kódov pomocou obrázkov, pridávania vlastných farieb a ukladania obrázka QR kódu do rôznych výstupných formátov. Generovanie: using IronQr; using IronSoftware.Drawing; // Generovanie štýlovaného QR kódu s logom 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"); Výstup generovaný IronQR Čítanie: 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}"); Výstup čítania IronQR Model ML je to, čo odlišuje IronQR od každej inej knižnice na tomto zozname. V našom testovaní úspešne dekódoval QR kódy z fotografií konferenčných odznakov a snímok obrazovky z rôznych uhlov, kde ZXing.Net a základné čítačky obrazových procesov nevrátili nič. Kompromisom je veľkosť balíka, model ONNX pridáva na váhe. Ak nepotrebujete čítanie, IronQR.Slim sa dodáva bez modelu ML a je výrazne ľahší. Silné stránky: Čítanie s podporou ML zvládne poškodené, otočené a čiastočne zakryté QR kódy a uprednostňuje presnosť Podporuje formáty QR Code, Micro QR a RMQR (obdĺžnikový Mikro QR) Kompletné API na štýlovanie: farby, logá, zaoblené moduly, okraje Multiplatformové: Windows, macOS, Linux, iOS, Android, Docker, Azure, AWS Podpora asynchrónneho čítania (ReadAsync) pre serverové pracovné zaťaženia Ukladanie do viacerých formátov, ako sú obrázky PNG, JPG, viacstránkové TIFF a ďalšie Užívateľsky prívetivé API uľahčuje používanie Obmedzenia: Vyžaduje sa komerčná licencia (749 $ + na vývojára na nasadenie) Plný balík je ťažší ako open-source alternatívy kvôli modelu ML je nižší ako u zrelých open-source možností, novší produkt (spustený ~2023) Počet stiahnutí z NuGetu Projekty iba na generovanie nemusia potrebovať režijnú réžiu ML Projekty, ktoré potrebujú generovanie aj čítanie, najmä tam, kde sú podmienky skenovania nedokonalé (mobilné aplikácie, skladové skenovanie, konferenčné/eventové scenáre). demonštruje IronQR zvládajúci generovanie QR kódov v reálnom čase s Blazorom a vlastnou značkou. Najlepšie pre: Prípadová štúdia vizitky Jeffa Fritza s QR kódom 2. — Najpopulárnejší open-source generátor QR kódov QRCoder Knižnica QRCoder je najsťahovanejší balík QR kódov na NuGet, s . Pôvodne vytvorený Raffaelom Herrmannom v roku 2013 a teraz , je to čistá implementácia v C#, zameraná výlučne na QR kódov (nie na čítanie). viac ako 68 miliónmi stiahnutí udržiavaný Shane32 generovanie using QRCoder; // Generovanie QR kódu a uloženie ako PNG bajtov 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); Výstup QRCoder QRCoder poskytuje viacero vykresľovačov: PngByteQRCode (multiplatformový, bez závislosti na System.Drawing), QRCode (založený na System.Drawing, iba Windows), SvgQRCode, AsciiQRCode a ďalšie. Obsahuje tiež generátory payloadov pre štruktúrované údaje, ako sú poverenia Wi-Fi, vCard a záložky, čo vám ušetrí manuálne formátovanie týchto reťazcov. Silné stránky: Licencia MIT, úplne zadarmo na komerčné použitie 68 miliónov stiahnutí z NuGetu, masívne prijatie komunitou a preukázaná stabilita Viacero možností vykresľovačov vrátane PngByteQRCode, ktorý sa vyhýba System.Drawing Vstavané generátory payloadov (Wi-Fi, vCard, geolokácia, udalosti kalendára) Podpora mikro QR kódu Nulové závislosti na cieľových .NET Standard Obmedzenia: , nevie čítať ani dekódovať obrazové súbory QR kódov Len generovanie Niektoré vykresľovače (ako QRCode) závisia od System.Drawing.Common, ktorý je od .NET 6 iba pre Windows Žiadne vstavané vkladanie loga (obrázok by ste skomponovali sami) Žiadne pokročilé štýlovanie (tvary modulov, prechody) Projekty, ktoré potrebujú iba generovanie QR kódov, najmä ak je rozpočet nulový. Ak potrebujete generovať QR kódy Wi-Fi alebo vCard a vôbec nepotrebujete čítať kódy, QRCoder je pragmatickou štandardnou voľbou pre väčšinu vývojárov .NET. Najlepšie pre: 3. — Švajčiarsky armádny nôž knižníc čiarových kódov ZXing.Net („Zebra Crossing“) je originálnej knižnice ZXing v jazyku Java. Je to univerzálna knižnica čiarových kódov podporujúca viac ako 15 formátov vrátane QR kódu, Data Matrix, Aztec, PDF 417, UPC, EAN, Code 128 a ďalších. Podpora QR je podskupinou jej širších možností. ZXing.Net port pre .NET using ZXing; using ZXing.Common; using ZXing.QrCode; // Generovanie QR kódu var writer = new BarcodeWriterPixelData { Format = BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Height = 250, Width = 250, Margin = 1 } }; var pixelData = writer.Write("https://example.com"); // Čítanie QR kódu vyžaduje balík väzieb (napr. ZXing.Net.Bindings.SkiaSharp) Výstup ZXing.Net ZXing.Net vyžaduje väzbové balíky špecifické pre platformu na vykresľovanie a čítanie. Základný balík poskytuje logiku kódovania/dekódovania; pridávate ZXing.Net.Bindings.Windows.Compatibility, ZXing.Net.Bindings.SkiaSharp alebo ZXing.Net.Bindings.ImageSharp v závislosti od vašej cieľovej platformy. Tento modulárny prístup je flexibilný, ale pridáva komplexnosť integrácie. Silné stránky: Licencia Apache 2.0, bezplatná na komerčné použitie Generovanie aj čítanie v jednej knižnici Podporuje viac ako 15 formátov čiarových kódov okrem QR kódov , osvedčené, rozsiahle znalosti komunity Viac ako 32 miliónov stiahnutí z NuGetu Dostupné väzby pre SkiaSharp, ImageSharp, OpenCV a ďalšie Obmedzenia: Funkcie špecifické pre QR kódy sú základné, žiadne vkladanie loga, žiadne pokročilé štýlovanie Presnosť čítania pri poškodených/otočených QR kódoch je stredná v porovnaní s riešeniami s podporou ML Väzbové balíky pridávajú komplexnosť riadenia závislostí Dizajn API ukazuje svoj vek, menej plynulý ako moderné knižnice .NET Tempo aktívnej údržby sa spomalilo (udržiavané komunitou) Projekty, ktoré potrebujú podporu QR kódov aj tradičných čiarových kódov (maloobchod, logistika) a chcú bezplatnú, osvedčenú možnosť. Ak je vašou prioritou funkcie špecifické pre QR kódy, ako je štýlovanie alebo čítanie s podporou ML, namiesto širokého pokrytia formátov čiarových kódov vám lepšie poslúži špecializovaná knižnica QR. Najlepšie pre: 4. Net.Codecrete.QrCodeGenerator — Ľahký a zameraný na štandardy Net.Codecrete.QrCodeGenerator je čistá, minimálna knižnica na generovanie QR kódov od Manuela Bleichenbachera. Je to , zameraný na správnosť a súlad so štandardmi ( ). preklad Java generátora QR kódov Project Nayuki do .NET 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); Príklad výstupu s Net.Codecrete.QrCodeGenerator S je dobre prijatý pre svoju špecializovanú knižnicu. Jeho výnimočnou kvalitou je nulová závislosť na System.Drawing — natívne generuje SVG, dáta cesty XAML, PNG a BMP. Vďaka tomu je vynikajúcou voľbou pre multiplatformové projekty .NET a služby ASP.NET Core bežiace v Dockeri. približne 4,1 miliónmi stiahnutí z NuGetu Silné stránky: Licencia MIT, úplne zadarmo Nulová závislosť System.Drawing, skutočne multiplatformový Malý odtlačok, rýchle generovanie Výstup SVG a XAML vstavaný (užitočný pre scenáre WPF, WinUI a webové) Správna implementácia všetkých 40 verzií QR a všetkých 4 úrovní korekcie chýb Rozsiahle príklady projektov (WinForms, WPF, ASP.NET Core, SkiaSharp, ImageSharp) Obmedzenia: , žiadna schopnosť čítať QR kódy Len generovanie Žiadne vkladanie loga ani pokročilé funkcie štýlovania Obmedzené prispôsobenie v porovnaní s generátormi payloadov QRCoder Menej komunitného obsahu a tutoriálov v porovnaní s QRCoder alebo ZXing.Net Vývojárov, ktorí potrebujú malý, správny, multiplatformový generátor QR kódov s výstupom SVG a bez záťaže System.Drawing. Ak je vaším cieľovým nasadením Linux alebo Docker a potrebujete iba generovanie, táto knižnica si zaslúži vážne zváženie. Najlepšie pre: 5. SkiaSharp.QrCode — Vysoko výkonné multiplatformové generovanie SkiaSharp.QrCode od je knižnica na generovanie QR kódov zameraná na výkon, postavená na SkiaSharp. Bola vytvorená špeciálne na to, aby sa vyhla obmedzeniam GDI+ v System.Drawing a zároveň poskytovala výkon na úrovni natívneho softvéru prostredníctvom hardvérovej akcelerácie SkiaSharp. guitarrapc using SkiaSharp.QrCode.Image; // Jednoradieľkový príkaz: generovať a uložiť QRCodeImageBuilder.SavePng("https://example.com", "qrcode.png"); // Alebo s vlastnými nastaveniami var pngBytes = new QRCodeImageBuilder("https://example.com") .WithSize(512, 512) .WithErrorCorrection(ECCLevel.H) .ToByteArray(); Výstup SkiaSharp.QrCode (jednoradieľkový príkaz)