Строить | Покрытие кода | Статус сборки | Пакет NuGet |
---|---|---|---|
Последняя / Стабильная |
QRCoder — это простая библиотека, написанная на C#.NET, которая позволяет создавать QR-коды. Он не зависит от внешних библиотек 1 , доступен в виде пакета на NuGet и поддерживает .NET Framework, .NET Core, .NET Standard и .NET. Полный список поддерживаемых целевых платформ можно найти здесь.
Не стесняйтесь брать/разветвлять проект и делать его лучше!
Для получения дополнительной информации см.: QRCode Wiki | Блог автора (английский) | Блог автора (немецкий)
Примечания к выпуску текущего и всех предыдущих выпусков можно прочитать здесь: ? Примечания к выпуску
QRCoder — это проект Рафаэля Херрманна, впервые выпущенный в октябре 2013 года. Он распространяется по лицензии MIT.
Либо проверьте этот репозиторий Github, либо установите QRCoder через диспетчер пакетов NuGet. Если вы хотите использовать NuGet, просто найдите «QRCoder» или выполните следующую команду в консоли диспетчера пакетов NuGet:
PM > Install-Package QRCoder
Канал NuGet содержит только основные/стабильные выпуски. Если вам нужны новейшие функции и возможности, вы можете использовать сборки CI через пакеты Github. (Дополнительную информацию о том, как использовать пакеты Github в диспетчере пакетов Nuget, можно найти здесь.)
Вам понадобится всего пара строк кода, чтобы создать свой первый QR-код.
using ( QRCodeGenerator qrGenerator = new QRCodeGenerator ( ) )
using ( QRCodeData qrCodeData = qrGenerator . CreateQrCode ( " The text which should be encoded. " , QRCodeGenerator . ECCLevel . Q ) )
using ( PngByteQRCode qrCode = new PngByteQRCode ( qrCodeData ) )
{
byte [ ] qrCodeImage = qrCode . GetGraphic ( 20 ) ;
}
Есть много других вариантов. Так что не стесняйтесь прочитать больше об этом в нашей вики: Wiki: Как использовать QRCoder.
Помимо обычного класса PngByteQRCode (который показан в примере выше) для создания QR-кодов в формате Bitmap, существует еще несколько классов рендеринга QR-кода, каждый из которых предназначен для другой специальной цели.
Примечание. Имейте в виду, что не все средства визуализации доступны во всех целевых платформах. Пожалуйста, проверьте таблицу совместимости в нашей вики, чтобы узнать, доступен ли конкретный рендерер в вашей любимой целевой платформе.
Для получения дополнительной информации о различных типах рендеринга щелкните один из типов в списке выше или посмотрите: Wiki: Расширенное использование — рендереры с QR-кодом.
Технически QR-код — это просто визуальное представление текста/строки. Тем не менее, большинство считывателей QR-кодов могут читать «специальные» QR-коды, которые запускают различные действия.
Например: WiFi-QR-коды, которые при сканировании смартфоном позволяют смартфону автоматически подключаться к точке доступа.
Эти «специальные» QR-коды генерируются с использованием специальной структурированной строки полезной нагрузки при создании QR-кода. Класс PayloadGenerator.cs помогает генерировать строки полезной нагрузки. Например, чтобы сгенерировать полезную нагрузку Wi-Fi, вам понадобится всего одна строка кода:
PayloadGenerator . WiFi wifiPayload = new PayloadGenerator . WiFi ( " MyWiFi-SSID " , " MyWiFi-Pass " , PayloadGenerator . WiFi . Authentication . WPA ) ;
Чтобы сгенерировать QR-код из этой полезной нагрузки, просто вызовите метод «ToString()» и передайте его в QRCoder.
//[...]
QRCodeData qrCodeData = qrGenerator . CreateQrCode ( wifiPayload . ToString ( ) , QRCodeGenerator . ECCLevel . Q ) ;
//[...]
Вы также можете использовать перегруженный метод, который принимает полезную нагрузку в качестве параметра. Генератор полезной нагрузки может иметь установку версии QR-кода (по умолчанию — автоматическая установка), уровня ECC (по умолчанию — M) и режима ECI (по умолчанию — автоматическое обнаружение).
//[...]
QRCodeData qrCodeData = qrGenerator . CreateQrCode ( wifiPayload ) ;
//[...]
Или, если вы хотите переопределить уровень ECC, установленный генератором полезной нагрузки, вы можете использовать перегруженный метод, который позволяет установить уровень ECC.
//[...]
QRCodeData qrCodeData = qrGenerator . CreateQrCode ( wifiPayload , QRCodeGenerator . ECCLevel . Q ) ;
//[...]
Вы можете узнать больше о генераторе полезной нагрузки в нашей Wiki.
PayloadGenerator поддерживает следующие типы полезных данных:
(1) В зависимости от целевой платформы библиотеки .NET System.Drawing.Common и System.Text.Encoding.CodePages будут использоваться в качестве зависимостей пакета.