Генератор QR-кодов на C# (.NET): мощный инструмент QRCoder
QR-коды стали неотъемлемой частью современного веба и мобильных приложений. Они используются для быстрого перехода по ссылкам, передачи контактных данных, авторизации, оплаты и многого другого. Если вы разрабатываете приложение на платформе .NET (C#), то одним из лучших решений для генерации QR-кодов является библиотека QRCoder. Это легковесная, высокопроизводительная и полностью управляемая библиотека с открытым исходным кодом, которая не требует внешних зависимостей (например, ImageMagick или ZXing).
Что такое QRCoder?
QRCoder — это чистая C#-реализация стандарта QR-кодов (ISO/IEC 18004). Она позволяет создавать QR-коды различных версий (от 1 до 40), задавать уровень коррекции ошибок (L, M, Q, H), встраивать логотипы и экспортировать результат в форматы PNG, BMP, JPG, GIF, а также в SVG или XAML (через дополнительные модули). Библиотека работает как с .NET Framework (начиная с 4.6), так и с .NET Core / .NET 5/6/7/8, что делает её универсальным выбором для веб-приложений (ASP.NET), десктопных (WPF, WinForms) и консольных проектов.
Установка и настройка
Установка QRCoder выполняется через менеджер пакетов NuGet. Выполните одну из следующих команд:
// Через Package Manager Console
Install-Package QRCoder
// Через .NET CLI
dotnet add package QRCoder
После установки библиотеки вы можете сразу приступить к генерации QR-кодов. Никаких дополнительных конфигураций не требуется.
Базовый пример: генерация QR-кода с текстом
Самый простой способ — создать QR-код, содержащий произвольную строку (URL, текст, номер телефона). Пример ниже генерирует QR-код и сохраняет его в файл:
using QRCoder;
using System.Drawing;
using System.Drawing.Imaging;
class Program
{
static void Main()
{
// 1. Создаём генератор
QRCodeGenerator qrGenerator = new QRCodeGenerator();
// 2. Создаём данные QR-кода (текст, уровень коррекции)
QRCodeData qrCodeData = qrGenerator.CreateQrCode(
"https://pythonlib.ru",
QRCodeGenerator.ECCLevel.Q // Уровень Q — 25% восстановления
);
// 3. Создаём графическое представление
QRCode qrCode = new QRCode(qrCodeData);
// 4. Рендерим в Bitmap (размер модуля 20 пикселей)
Bitmap qrCodeImage = qrCode.GetGraphic(20);
// 5. Сохраняем в файл
qrCodeImage.Save("qrcode.png", ImageFormat.Png);
Console.WriteLine("QR-код создан: qrcode.png");
}
}
В результате вы получите файл qrcode.png с чёрно-белым QR-кодом. Уровень коррекции Q позволяет восстановить до 25% повреждённых данных — оптимально для большинства задач.
QR-код с логотипом (брендирование)
QRCoder поддерживает встраивание изображения в центр QR-кода. Это полезно для брендовых стикеров или визиток. Важно: логотип не должен перекрывать более 30% площади кода, иначе считывание станет невозможным.
using QRCoder;
using System.Drawing;
public Bitmap GenerateQrWithLogo(string text, string logoPath)
{
QRCodeGenerator qrGenerator = new QRCodeGenerator();
QRCodeData qrCodeData = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q);
QRCode qrCode = new QRCode(qrCodeData);
// Загружаем логотип
Image logo = Image.FromFile(logoPath);
// Генерируем с логотипом (размер модуля 20, цвет фона белый, логотип по центру)
Bitmap result = qrCode.GetGraphic(20, Color.Black, Color.White, logo);
return result;
}
Настройка внешнего вида: цвет и размер
Вы можете легко менять цвета QR-кода, чтобы адаптировать его под дизайн вашего приложения. Метод GetGraphic принимает параметры:
- pixelsPerModule — размер одного модуля (квадратика) в пикселях.
- darkColor — цвет тёмных модулей (по умолчанию
Color.Black). - lightColor — цвет светлых модулей (по умолча
Также в библиотеке
PDF генерация в Swift (iOS/macOS): обзор инструментов и примеры
Генерация PDF отчётов на C# (.NET): iTextSharp, QuestPDF, PDFsharp
Обработка и парсинг Markdown в PHP: библиотеки и примеры
node-schedule — планировщик задач для TypeScript
Работа с S3 и облачными хранилищами в Swift (iOS/macOS): AWSS3 и Amplify