Создаем QR коды

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by p0wER, 22 May 2011.

  1. p0wER

    p0wER Member

    Joined:
    2 Jun 2010
    Messages:
    30
    Likes Received:
    26
    Reputations:
    1
    Для начала узнаем что такое QR код

    QR код - это матричный код (двухмерный штрихкод), разработанный и представленный японской компанией «Denso-Wave» в 1994 году. Аббревиатура QR производна от англ. quick response, что переводится как «быстрый отклик».

    Основное достоинство QR-кода — это легкое распознавание сканирующим оборудованием (в том числе и фотокамерой мобильного телефона), что дает возможность использования в торговле, производстве, логистике.

    Сегодня QR-коды больше всего распространены в Японии, стране, где штрих-коды пользовались такой большой популярностью, что объем информации, зашифрованной в коде, вскоре перестал устраивать индустрию. Японцы начали экспериментировать с новыми способами кодирования небольших объемов информации в графической картинке.

    Уже в начале 2000 года QR-коды получили широкое распространение в Японии, их можно было встретить на большом количестве плакатов, упаковок и товаров. (цт. из Wikipedia)

    Пример QR кода:
    [​IMG]


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

    В QR код можно заложить любую информацию, но все же имеются ограничения по объему вкладываемой информации:

    Цифры – 7089
    Цифры и буквы (включая кириллицу) – 4296
    Двоичный код – 2953 байт
    Иероглифы – 1817



    Как создать QR код?

    Собственно так как статья находится в разделе "Программирование", мы рассмотрим программную реализацию создания QR кодов. Если честно я был очень удивлен, так как в интернете существует огромное количество классов для Создания\Расшифровки QR кодов, как Open Source, так и Shareware.

    Лично я обратил свое внимание на один Trial класс для .NET - OnBarcode, данный инструментарий обладает огромным функционалом и простотой использования (Скачать), помимо генерации QR кодов, он позволяет создавать обыкновенные штрих коды

    Пример использования:
    Code:
                Dim qrcode As OnBarcode.Barcode.QRCode = New OnBarcode.Barcode.QRCode() 'Создаем объект класса QRCode
                qrcode.Data = "0123456789" 'Это собственно наша шифруемая инфа
                qrcode.X = 3 'Размер выходного изображения
                
                'Сохранение нашего кода в Jpeg формате, доступны и другие
                qrcode.Format = ImageFormat.Jpeg
                qrcode.drawBarcode("C:\qrcode.jpg")
    
                'а если не хотим сохранять, то можем запихать в Bitmap, и в дальнейшем отобразить в PictureBox
                Dim qrcodeBitmap As Bitmap
                qrcodeBitmap = qrcode.drawBarcode()
    Вот собственно и все сложности)

    Расшифровка QR кодов

    В интернете существует много Online сервисов по дешифровке QR кодов (Пример).

    Никто не запрещал использовать библиотеки для .NET для дешифровки данных кодов, но будьте готовы таскать за собой от 6Мб разноперстных библиотек для успешной работы вашего приложения. (Библиотека + пример использования)

    P.S.

    На основе QR кодов + простенькой системы шифрования текста можно сделать систему инвайтов, т.е. регистрации по приглашениям на своем интернет ресурсе (ASP.NET никто не отменял), либо найти более разумное использованию всему этому) Писал я этот обзор "ради интереса", сам данную систему даже и не использую...

    ©Pro
     
  2. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Бейсик это жестоко.
    А по сути, для софта особо и не нужны QR коды в реальном времени генерить. т.е. редко надо. А для сайтов (часто юзается на сайтах в виде визиток или линка на мобильную версию), тогда лучше юзать гугловский api для генерации
    вот пример: http://chart.googleapis.com/chart?chs=250x250&cht=qr&chl=Hello+Antichat&choe=UTF-8
     
  3. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20