Цалкам раскрываем: мы - камандa распрацоўшчыкаў Iron Software, кампаніі, якая стаіць за IronQR, адной з бібліятэк у гэтым параўнанні. Улічваючы гэта, мы лічым, што шчырыя ацэнкі служаць усім лепш, чым маркетынгавыя хітрыкі. Мы пакажам нашу метадалогію, прызнаем нашы прыхільнасці і дазволім коду гаварыць самому за сябе. Мы пратэставалі кожную бібліятэку QR-кодаў C# па аднолькавых крытэрыях ацэнкі: простая генерацыя QR-кодаў, чытанне QR-кодаў з выяваў, глыбіня налады, кросплатформавая падтрымка і кошт ліцэнзавання. Ніжэй прыведзены вынік - параўнанне 11 вартых увагі бібліятэк QR-кодаў у экасістэме .NET, прызначанае для таго, каб дапамагчы вам выбраць правільную для вашага праекта з першага разу. Вось як выглядае генерацыя QR-кода ў тры радкі з дапамогай у Visual Studio, адной з бібліятэк, якую мы будзем разглядаць: IronQR using IronQr; using IronSoftware.Drawing; QrCode qr = QrWriter.Write("https://example.com"); AnyBitmap bitmap = qr.Save(); bitmap.SaveAs("myqr.png"); Прыклад вываду QR-кода IronQR Такая прастата - гэта базавы ўзровень. Сапраўднае пытанне ў тым, што адбываецца, калі вам трэба пашкоджаны QR-код са складавога сканера, убудаваць брэндавы лагатып, нацэльвацца на Linux-кантэйнеры або апрацоўваць тысячы кодаў у пакетнай задачы. Менавіта тут бібліятэкі разыходзяцца, і тут гэтае параўнанне акупляецца. прачытаць Кароткі змест: Майстар-табліца параўнання Перш чым паглыбіцца, вось поўная карціна. Гэтая табліца адлюстроўвае найбольш важныя параметры пры выбары бібліятэкі QR для праекта .NET. Бібліятэка Генераваць Чытаць Лагатып/Стыль Мікра QR Кросплатформавы Ліцэнзія Спампоўкі NuGet IronQR ✅ ✅ З падтрымкай ML ✅ Поўная ✅ + RMQR ✅ Win/Mac/Linux/Mobile Камерцыйная ($749+) ~56K QRCoder ✅ ❌ ✅ Умераная ✅ ⚠️ Частковая (System.Drawing) MIT (Бясплатна) ~68M ZXing.Net ✅ ✅ ❌ Мінімальная ❌ ⚠️ Праз прывязкі Apache 2.0 (Бясплатна) ~32M Net.Codecrete.QrCodeGenerator ✅ ❌ ❌ ❌ ✅ MIT (Бясплатна) ~4.1M SkiaSharp.QrCode ✅ ❌ ✅ Нестандартныя формы ❌ ✅ MIT (Бясплатна) ~1.2M Aspose.BarCode ✅ ✅ ✅ ✅ ✅ Камерцыйная ($999+) ~5.4M Syncfusion Barcode ✅ ❌ ✅ Умераная ❌ ✅ (Кантроль UI) Камерцыйная (Бясплатная супольнасць) ~2M+ Spire.Barcode ✅ ✅ ✅ Убудаванне лагатыпа ❌ ⚠️ (System.Drawing) Камерцыйная ($599+) ~450K IronBarcode ✅ ✅ ✅ ✅ Мікра QR ✅ Win/Mac/Linux Камерцыйная ($749+) ~1.2M Dynamsoft Barcode Reader ❌ ✅ Высокапрадукцыйны Н/Д ✅ ✅ Камерцыйная ($1,249+/год) ~250K BarcodeLib ✅ ❌ ❌ ❌ ⚠️ (System.Drawing) Apache 2.0 (Бясплатна) ~4.5M Табліца 1: Майстар-параўнанне 11 QR-бібліятэк .NET па ключавых крытэрыях выбару. Колькасць спамповак прыблізная па стане на пачатак 2026 года. Астатняя частка гэтай артыкула разбірае кожны радок з кодамі, кампрамісамі і шчырымі ацэнкамі. Як мы ацэньвалі гэтыя бібліятэкі? Мы ацэньвалі кожную бібліятэку па сямі крытэрыях, узважаных па тым, як часта яны ўплываюць на рэальныя рашэнні аб выбары: — ці можа яна ствараць QR-коды з радкоў, URL-адрасоў і структураваных дадзеных (vCards, Wi-Fi крэдыты)? Генерацыя QR-кода — ці можа яна дэкадаваць QR-коды з выяваў, сканаванняў або PDF? Як яна апрацоўвае пашкоджаныя або павернутыя коды? Чытанне QR-кода — убудоўванне лагатыпаў, кантроль колеру, стылізацыя формы модуляў, налада карэкцыі памылак Налада — Стандартны QR, Мікра QR, RMQR (Прамавугольны Мікра QR) Падтрымка фарматаў QR — ці працуе ён бездакорна на Windows, Linux, macOS і ўнутры Docker-кантэйнераў без маніпуляцый з System.Drawing? Кросплатформавасць — адкрыты код супраць камерцыйнага, цана за распрацоўніка, зніжкі на наборы Ліцэнзаванне і кошт — якасць даведніка API, даступнасць падручнікаў, памер супольнасці, актыўнае абслугоўванне Дакументацыя і экасістэма Усе прыклады кода арыентаваны на і выкарыстоўваюць інструкцыі верхняга ўзроўню. Там, дзе .NET 10 уводзіць адпаведныя паляпшэнні, мы адзначаем іх. .NET 8 (LTS) Якую QR-бібліятэку выбраць? Структура прыняцця рашэнняў Прапусціце 11 профіляў бібліятэк ніжэй, калі вы ўжо ведаеце свае абмежаванні. Вось хуткі шлях: → або . Абедзве маюць ліцэнзію MIT. QRCoder мае больш рэндэраў і дапаможнікаў па нагрузцы; Net.Codecrete лягчэйшы і цалкам пазбягае System.Drawing. "Мне трэба бясплатна генераваць QR-коды без залежнасцяў." QRCoder Net.Codecrete.QrCodeGenerator → (чытанне з падтрымкай ML, найлепшая дакладнасць для пашкоджаных кодаў), (бясплатна, праверана, найшырэйшая падтрымка фарматаў) або (карпаратыўны пакет, дорага). "Мне трэба як генераваць, так і чытаць QR-коды." IronQR ZXing.Net Aspose.BarCode → , або . Усе тры пазбягаюць залежнасці System.Drawing, якая парушае кросплатформавыя разгортванні. "Я разгортваю на Linux/Docker і не магу выкарыстоўваць System.Drawing." IronQR SkiaSharp.QrCode Net.Codecrete.QrCodeGenerator → лідзіруе ў тэстах генерацыі. Для прадукцыйнасці чытання спецыяльна распрацаваны для высокапрадукцыйнага сканавання. "Прадукцыйнасць і выкарыстанне памяці крытычныя." SkiaSharp.QrCode Dynamsoft Barcode Reader → Выкарыстоўвайце тое, што ў вас ёсць. Даданне QR-бібліятэкі іншага пастаўшчыка, калі ваш набор ужо ўключае адну, рэдка мае сэнс з пункту гледжання ліцэнзавання або абслугоўвання. "Я ўжо выкарыстоўваю набор Aspose/Syncfusion/Iron Software." → мае спецыяльныя кіраўніцтва па інтэграцыі MAUI і Blazor. MVP Microsoft Джэф Фрыц , выкарыстоўваючы IronQR з Blazor, што з'яўляецца рэальным прыкладам менавіта такой схемы. "Я ствараю мабільнае прыкладанне Blazor/MAUI з QR-сканаваннем." IronQR стварыў QR-базаванае прыкладанне для візітных картак 11 QR-бібліятэк .NET у параўнанні 1. IronQR — Чытанне і генерацыя QR-кодаў з падтрымкай ML і кросплатформавай падтрымкай IronQR - гэта спецыялізаваная бібліятэка QR-кодаў Iron Software, асобная ад іх больш шырокага прадукту IronBarcode. Яе выдатная функцыя - мадэль машыннага навучання (на аснове ), якая выяўляе і чытае QR-коды з няздзейсных выяваў, павернутыя, часткова закрытыя або сфатаграфаваныя пад няправільнымі вугламі, часта ўсяго ў некалькіх радках кода. ONNX Ён таксама здольны з лёгкасцю ствараць аб'екты QR-кодаў, падтрымліваючы стылізацыю QR-кодаў выявамі, даданне нестандартных колераў і захаванне выявы QR-кода ў розных фармат выходнага файла. Генерацыя: using IronQr; using IronSoftware.Drawing; // Генераваць стылізаваны QR-код з лагатыпам 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"); Вывад QR-кода, згенераванага IronQR Чытанне: 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 Мадэль ML - гэта тое, што адрознівае IronQR ад усіх іншых бібліятэк у гэтым спісе. У нашым тэсці яна паспяхова дэкадавала QR-коды з фатаграфій канферэнцыйных бэйджаў і скрыншотаў пад вуглом, дзе ZXing.Net і асноўныя чытачы выяваў не вярталі нічога. Кампрамісам з'яўляецца памер пакета, мадэль ONNX дадае вагу. Калі вам не трэба чытанне, IronQR.Slim пастаўляецца без мадэлі ML і значна лягчэйшы. Перавагі: Чытанне з падтрымкай ML апрацоўвае пашкоджаныя, павернутыя і часткова закрытыя QR-коды і прыярытызуе дакладнасць Падтрымлівае фарматы QR Code, Micro QR і RMQR (Прамавугольны Мікра QR) Поўны API для стылізацыі: колеры, лагатыпы, акруглыя модулі, межы Кросплатформавы: Windows, macOS, Linux, iOS, Android, Docker, Azure, AWS Падтрымка асінхроннага чытання (ReadAsync) для серверных нагрузак Захаванне ў розных фарматах, такіх як выява PNG, JPG, шматстаронкавы TIFF і іншыя Зручны API робіць яго простым у выкарыстанні Абмежаванні: Патрабуецца камерцыйная ліцэнзія ($749+ за распрацоўніка для разгортвання) Поўны пакет цяжэйшы за альтэрнатывы з адкрытым зыходным кодам з-за мадэлі ML ніжэйшая за саспелыя опцыі з адкрытым зыходным кодам, больш новы прадукт (запушчаны ~2023) Колькасць спамповак NuGet Праекты, арыентаваныя толькі на генерацыю, могуць не патрабаваць накладных выдаткаў ML Праектаў, якія патрабуюць як генерацыі, так і чытання, асабліва там, дзе ўмовы сканавання няздзейсныя (мабільныя прыкладанні, складавое сканаванне, канферэнцыі/падзеі). дэманструе IronQR, які апрацоўвае генерацыю QR-кодаў у рэжыме рэальнага часу з Blazor і нестандартным брэндынгам. Лепш за ўсё падыходзіць для: Даследаванне выпадку QR-візітнай карткі Джэфа Фрыца 2. — Самы папулярны генератар QR-кодаў з адкрытым зыходным кодам QRCoder Бібліятэка QRCoder з'яўляецца самым спампаваным пакетам QR-кодаў на NuGet, з . Першапачаткова створаная Рафаэлем Херманам у 2013 годзе і цяпер , гэта чыстая рэалізацыя C#, сфакусаваная выключна на QR-кодаў (не на чытанні). больш чым 68 мільёнамі спамповак падтрымліваная Шэйнам32 генерацыі using QRCoder; // Генераваць QR-код і захаваць у выглядзе байтаў PNG 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 QRCoder прадастаўляе некалькі рэндэраў: PngByteQRCode (кросплатформавы, без залежнасці ад System.Drawing), QRCode (на аснове System.Drawing, толькі для Windows), SvgQRCode, AsciiQRCode і іншыя. Ён таксама ўключае генератары нагрузкі для структураваных дадзеных, такіх як Wi-Fi крэдыты, vCards і закладкі, што дазваляе вам не фармаціраваць гэтыя радкі ўручную. Перавагі: Ліцэнзія MIT, цалкам бясплатная для камерцыйнага выкарыстання 68M+ спамповак NuGet, масавае прыняцце супольнасцю і правераная стабільнасць Некалькі варыянтаў рэндэру, уключаючы PngByteQRCode, які пазбягае System.Drawing Убудаваныя генератары нагрузкі (Wi-Fi, vCard, геалакацыя, падзеі календара) Падтрымка мікра QR-кодаў Нулявыя залежнасці ад мэтавых .NET Standard Абмежаванні: , не можа чытаць або дэкадаваць файлы выяваў QR-кодаў Толькі генерацыя Некаторыя рэндэры (напрыклад, QRCode) залежаць ад System.Drawing.Common, які з'яўляецца Windows-толькі з .NET 6 Убудаваная падтрымка ўбудоўвання лагатыпаў адсутнічае (вы б складалі выяву самастойна) Ніякіх пашыраных стылізацый (формы модуляў, градыенты) Праектаў, якім патрэбна толькі генерацыя QR-кодаў, асабліва калі бюджэт роўны нулю. Калі вам трэба генераваць QR-коды Wi-Fi або vCards і вам зусім не трэба чытаць коды, QRCoder з'яўляецца прагматычным выбарам па змаўчанні для большасці распрацоўшчыкаў .NET. Лепш за ўсё падыходзіць для: 3. — Шматфункцыянальная бібліятэка штрых-кодаў ZXing.Net ("Zebra Crossing") - гэта арыгінальнай бібліятэкі ZXing на Java. Гэта бібліятэка штрых-кодаў агульнага прызначэння, якая падтрымлівае больш за 15 фарматаў, QR Code, Data Matrix, Aztec, PDF 417, UPC, EAN, Code 128 і іншыя. Падтрымка QR з'яўляецца падмноствам яго больш шырокіх магчымасцей. ZXing.Net порт для .NET using ZXing; using ZXing.Common; using ZXing.QrCode; // Генераваць QR-код 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-кода патрабуе пакета прывязкі (напрыклад, ZXing.Net.Bindings.SkiaSharp) Вывад ZXing.Net ZXing.Net патрабуе спецыфічных для платформы пакетаў прывязкі для рэндэрынгу і чытання. Асноўны пакет прадастаўляе лагіку кадавання/дэкадавання; вы дадаеце ZXing.Net.Bindings.Windows.Compatibility, ZXing.Net.Bindings.SkiaSharp або ZXing.Net.Bindings.ImageSharp у залежнасці ад вашай мэтавай платформы. Гэты модульны падыход гнуткі, але дадае складанасць інтэграцыі. Перавагі: Ліцэнзія Apache 2.0, бясплатная для камерцыйнага выкарыстання Генерацыя і чытанне ў адным бібліятэцы Падтрымлівае больш за 15 фарматаў штрых-кодаў, акрамя QR-кодаў , праверана, шырокія веды супольнасці 32M+ спамповак NuGet Даступныя прывязкі для SkiaSharp, ImageSharp, OpenCV і іншых Абмежаванні: QR-спецыфічныя функцыі базавыя, няма ўбудоўвання лагатыпаў, няма пашыраных стылізацый Дакладнасць чытання пашкоджаных/павернутых QR-кодаў умераная ў параўнанні з рашэннямі з падтрымкай ML Пакеты прывязкі дадаюць складанасць кіравання залежнасцямі API-дызайн паказвае свой узрост, менш плыўны, чым сучасныя бібліятэкі .NET Тэмп актыўнага абслугоўвання запаволіўся (падтрымліваецца супольнасцю) Праектаў, якім патрэбна падтрымка як QR-кодаў, так і традыцыйных штрых-кодаў (рознічны гандаль, лагістыка) і патрэбен бясплатны, правераны варыянт. Калі ваш прыярытэт - QR-спецыфічныя функцыі, такія як стылізацыя або чытанне з падтрымкай ML, а не шырокае пакрыццё фарматаў штрых-кодаў, выдзеленая QR-бібліятэка будзе служыць вам лепш. Лепш за ўсё падыходзіць для: 4. Net.Codecrete.QrCodeGenerator — Лёгкі і арыентаваны на стандарты Net.Codecrete.QrCodeGenerator - гэта чыстая, мінімальная бібліятэка генерацыі QR-кодаў ад Мануэля Блайхенбахера. Гэта да Java-генератара QR-кодаў Project Nayuki, сфакусаваны на карэктнасці і адпаведнасці стандартам ( ). парт .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); Прыклад вываду з Net.Codecrete.QrCodeGenerator З , ён добра прыняты для спецыфічнай бібліятэкі. Яго выдатная якасць - нуль залежнасцяў ад System.Drawing — ён натыўна генераруе SVG, дадзеныя шляху XAML, PNG і BMP. Гэта робіць яго выдатным выбарам для кросплатформавых праектаў .NET і сэрвісаў ASP.NET Core, якія працуюць у Docker. ~4.1 мільёнамі спамповак NuGet Перавагі: