Генератор QR-кодов на C# (.NET) с библиотекой QRCoder

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Генератор 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 — цвет светлых модулей (по умолча

Рекомендаций