DelphiZXingQRCodeEx — это набор классов Delphi для генерации QR-кодов. Исходный код был портирован на Delphi из проекта ZXing, который представляет собой библиотеку для работы с различными графическими кодами.
Изначально код был портирован Кевином Ньюманом, главным разработчиком австралийской компании Debenu, ныне Foxit (проект называется DelphiZXingQRCode и доступен на GitHub, см. ссылки ниже). После этого он был доработан и изменён Михаилом Демидовым. Подробный список этих изменений приведён в файле CHANGELOG-RUS.md.
Наиболее принципиальные отличия такие:
- Исправлен уровень коррекции ошибок.
- Добавлена возможность для определения собственных способов кодирования входных строк. В качестве примера реализованы кодирование Win-1251 (совместимое с требованиями Сбербанка РФ — это уже проверено) и кодирование URL (преобразование нелатинских символов в %-коды).
- Добавлена обработка исключений, чтобы избежать Access Violation, когда входная строка слишком длинная.
- Добавлен отдельный модуль для получения графического представления QR-кода в разных форматах (битовая матрица, метафайл).
- Сохранена совместимость со старыми версиями Delphi (по крайней мере, до 7 включительно). Совместима с Lazarus (см. пункт 5 файла CHANGELOG-RUS.md или статью в блоге — раздел Ссылки ниже).
Проект распространяется под той же лицензией Apache License (v2.0), что и оригинальная библиотека.
Delphi 7 или новее (теоретически может компилироваться и в более старых версиях, на практике не проверялось за неимением оных).
В папке TestApp находится простой проект, который демонстрирует работу с классом TDelphiZXingQRCode (в т.ч. сохранение изображения в форматах BMP, JPEG и EMF).