1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/atalent-ThoughtWorks.QRCode

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
readme.md 3.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 3 месяцев назад a6ff4bc

Библиотека классов для распознавания двумерных кодов ThoughtWorks.QRCode, стандартная версия

ThoughtWorks.QRCode очень удобен в использовании, но эта библиотека классов не поддерживает стандартные библиотеки.

Поэтому я сделал стандартную версию через декомпиляцию dll и добавил зависимость от System.Drawing.Common.

Кроме того, я обнаружил, что при анализе длинных данных или QRCodeVersion >= 30 возникает исключение.

Я исправил это, используя автоматическую версию QRCodeVersion, то есть это свойство не нужно устанавливать, см. пример использования.

Автор haoersheng не оставил контактную информацию, если есть нарушение авторских прав, пожалуйста, свяжитесь со мной для удаления!!!

Пример использования

using System.Drawing;
using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;

namespace CommonUtils
{
    /// <summary>
    /// Инструменты для работы с двумерными кодами
    /// </summary>
    public static class QrCodeUtil
    {
        /// <summary>
        /// Возвращает изображение двумерного кода
        /// </summary>
        public static Bitmap Encode(string text)
        {
            var qrCodeEncoder = new QRCodeEncoder();
            //qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            //qrCodeEncoder.QRCodeScale = 4;
            //qrCodeEncoder.QRCodeVersion = 29;
            //qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
            return qrCodeEncoder.Encode(text);
        }

        /// <summary>
        /// Определяет параметры и генерирует двумерный код
        /// </summary>
        public static void Create(string text, string path)
        => Encode(text).Save(path);

        /// <summary>
        /// Возвращает строку, определённую двумерным кодом
        /// </summary>
        public static string Decode(Bitmap image)
        {
            var qrCodeBitmapImage = new QRCodeBitmapImage(image);
            var qrCodeDecoder = new QRCodeDecoder();
            return qrCodeDecoder.decode(qrCodeBitmapImage);
        }

        /// <summary>
        /// Возвращает строку, определённую двумерным кодом
        /// </summary>
        public static string Decode(string path)
        => Decode(new Bitmap(path));
    }
}
            var path = "D:/" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".png";
            var qr = QrCodeUtil.Encode("Hello World!");
            qr.Save(path);
            Console.WriteLine(QrCodeUtil.Decode(qr));

            path = "D:/" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".png";
            QrCodeUtil.Create("中国智造,惠及全球!", path);
            Console.WriteLine(QrCodeUtil.Decode(path));

            Console.WriteLine("Press enter to exit...");
            Console.ReadLine();

Исходный код

https://gitee.com/atalent/ThoughtWorks.QRCode

Просмотр

https://www.nuget.org/packages/ThoughtWorks.QRCode.Standard

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/atalent-ThoughtWorks.QRCode.git
git@gitlife.ru:oschina-mirror/atalent-ThoughtWorks.QRCode.git
oschina-mirror
atalent-ThoughtWorks.QRCode
atalent-ThoughtWorks.QRCode
master