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

OSCHINA-MIRROR/atalent-ThoughtWorks.QRCode

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
readme.md

Библиотека классов для распознавания двумерных кодов 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 )

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

Введение

**ThoughtWorks.QRCode.Core** (перевод на русский язык) *ThoughtWorks.QRCode.Core* Расширить Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
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