C#

Генерация QR-кода C#: простой путь через NuGet-пакет

Генерация QR-кода в C# обычно делается через готовую библиотеку из NuGet. Сам язык C# не содержит встроенного генератора QR-кодов, поэтому практичный путь такой: создать проект, установить пакет, передать строку или ссылку, получить изображение и сохранить его в файл. Для учебного примера удобно использовать пакет QRCoder

Создайте проект

dotnet new console -n QrDemo
cd QrDemo

Установите пакет:

dotnet add package QRCoder

Если команда прошла успешно, пакет добавится в .csproj, и код сможет использовать классы библиотеки

Базовая идея

QR-код кодирует текст. Это может быть ссылка, номер заказа, email, короткая команда, строка подключения к Wi-Fi. Но не стоит пихать в QR все подряд: чем длиннее строка, тем плотнее код и тем хуже он читается

Простой сценарий:

  1. Подготовить текст.
  2. Создать данные QR.
  3. Сгенерировать изображение.
  4. Сохранить PNG.

Пример кода

В разных версиях библиотек API может немного отличаться, поэтому ориентируйтесь на документацию выбранного пакета. Типовой пример выглядит так:

using QRCoder;

string text = "https://aglamov.biz";

using QRCodeGenerator generator = new();
using QRCodeData data = generator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q);
using PngByteQRCode qrCode = new(data);

byte[] bytes = qrCode.GetGraphic(20);
File.WriteAllBytes("qr.png", bytes);

Console.WriteLine("QR-код сохранен в qr.png");

После запуска в папке проекта появится файл qr.png

Как запустить

dotnet run

Если файл не появился, проверьте ошибки в терминале и убедитесь, что пакет установлен. Также проверьте, что программа имеет право записывать файл в текущую папку

Что проверять перед генерацией

Перед созданием QR-кода проверьте строку:

if (string.IsNullOrWhiteSpace(text))
{
    Console.WriteLine("Нельзя создать QR-код из пустой строки");
    return;
}

Если генерируете QR для ссылки, отдельно проверьте, что ссылка начинается с https:// или http://

if (!text.StartsWith("https://") && !text.StartsWith("http://"))
{
    Console.WriteLine("Для ссылки укажите полный адрес");
    return;
}

Еще одна рабочая проверка — имя файла. Не сохраняйте все QR-коды в один и тот же qr.png, если программа будет использоваться больше одного раза. Для учебного проекта можно добавить дату или короткий идентификатор заказа. Для сайта или CRM лучше хранить QR-код рядом с сущностью, для которой он создан: заказом, билетом, клиентской ссылкой или складской меткой

Где использовать

QR-код может пригодиться для билета, заказа, страницы оплаты, визитки, инструкции, ссылки на файл, внутренней складской метки. Но если QR ведет на важное действие, например оплату, нельзя полагаться только на картинку. Нужна серверная проверка, срок действия и защита от подмены

Если QR-код показывается пользователю в интерфейсе, заранее проверьте размер изображения. Слишком маленький код плохо сканируется, а слишком большой ломает верстку формы или страницы. В консольном примере это не критично, но в WinForms, WPF или ASP.NET Core обычно стоит ограничить размер блока и протестировать код обычным телефоном

Частые ошибки

Первая ошибка — искать встроенный QRCode в стандартной библиотеке C#. Вторая — генерировать слишком длинный текст. Третья — сохранять файл в неожиданную папку. Четвертая — не проверять строку перед генерацией. Пятая — использовать QR как «секрет», хотя любой человек может его отсканировать

Мини-задача: сделайте программу, которая спрашивает ссылку в консоли, проверяет, что строка не пустая, и сохраняет QR-код в файл link-qr.png

Что почитать дальше по C#

Что почитать дальше по C#

Если нужен общий маршрут по теме, откройте рубрику C#. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x