From f329b9488899a3db26a5f1a3b9d21f7983e768cd Mon Sep 17 00:00:00 2001 From: Alex Spataru Date: Sun, 26 Mar 2023 18:55:02 -0500 Subject: [PATCH] Initial commit --- .clang-format | 123 ++++++ .github/workflows/Build.yml | 243 +++++++++++ .gitignore | 30 ++ Qt-QrCodeGenerator.pri | 33 ++ Qt-QrCodeGenerator.pro | 33 ++ README.md | 25 ++ example/Example.pro | 35 ++ example/MainWindow.cpp | 94 +++++ example/MainWindow.h | 56 +++ example/main.cpp | 30 ++ example/screenshot.png | Bin 0 -> 373215 bytes src/QrCodeGenerator.cpp | 79 ++++ src/QrCodeGenerator.h | 76 ++++ src/qrcodegen/qrcodegen.cpp | 813 ++++++++++++++++++++++++++++++++++++ src/qrcodegen/qrcodegen.h | 573 +++++++++++++++++++++++++ 15 files changed, 2243 insertions(+) create mode 100644 .clang-format create mode 100644 .github/workflows/Build.yml create mode 100644 .gitignore create mode 100644 Qt-QrCodeGenerator.pri create mode 100644 Qt-QrCodeGenerator.pro create mode 100644 README.md create mode 100644 example/Example.pro create mode 100644 example/MainWindow.cpp create mode 100644 example/MainWindow.h create mode 100644 example/main.cpp create mode 100644 example/screenshot.png create mode 100644 src/QrCodeGenerator.cpp create mode 100644 src/QrCodeGenerator.h create mode 100644 src/qrcodegen/qrcodegen.cpp create mode 100644 src/qrcodegen/qrcodegen.h diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..298c908 --- /dev/null +++ b/.clang-format @@ -0,0 +1,123 @@ +--- +Language: Cpp +BasedOnStyle: LLVM +AccessModifierOffset: -2 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveBitFields: false +AlignConsecutiveDeclarations: false +AlignEscapedNewlines: Right +AlignOperands: true +AlignTrailingComments: true +AllowAllArgumentsOnNextLine: false +AllowAllConstructorInitializersOnNextLine: false +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortBlocksOnASingleLine: Empty +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: Empty +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: Yes +BinPackArguments: true +BinPackParameters: true +BraceWrapping: + AfterCaseLabel: false + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + AfterExternBlock: false + BeforeCatch: false + BeforeElse: false + IndentBraces: false + SplitEmptyFunction: false + SplitEmptyRecord: false + SplitEmptyNamespace: false +BreakBeforeBinaryOperators: NonAssignment +BreakBeforeBraces: Custom +BreakBeforeInheritanceComma: false +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: false +ColumnLimit: 100 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerAllOnOneLineOrOnePerLine: true +ConstructorInitializerIndentWidth: 2 +ContinuationIndentWidth: 2 +Cpp11BracedListStyle: true +DeriveLineEnding: true +DerivePointerAlignment: false +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: true +ForEachMacros: + - foreach + - Q_FOREACH + - BOOST_FOREACH +IncludeBlocks: Preserve +IncludeCategories: + - Regex: '^$' + Priority: -1 + - Regex: '^<.*\.h>$' + Priority: 1 + - Regex: '^<.*>' + Priority: 2 + - Regex: '.*' + Priority: 3 +IncludeIsMainRegex: '(Test)?$' +IndentCaseBlocks: true +IndentCaseLabels: false +IndentGotoLabels: true +IndentPPDirectives: AfterHash +IndentWidth: 2 +IndentWrappedFunctionNames: false +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: true +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBinPackProtocolList: Auto +ObjCBlockIndentWidth: 2 +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: true +PenaltyBreakAssignment: 2000 +PenaltyBreakBeforeFirstCallParameter: 19 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyBreakTemplateDeclaration: 10 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 60 +PointerAlignment: Right +ReflowComments: true +SortIncludes: true +SortUsingDeclarations: true +SpaceAfterCStyleCast: false +SpaceAfterLogicalNot: false +SpaceAfterTemplateKeyword: true +SpaceBeforeAssignmentOperators: true +SpaceBeforeCpp11BracedList: false +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeParens: ControlStatements +SpaceBeforeRangeBasedForLoopColon: true +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 2 +SpacesInAngles: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Latest +TabWidth: 2 +UseTab: Never +... diff --git a/.github/workflows/Build.yml b/.github/workflows/Build.yml new file mode 100644 index 0000000..d4d168f --- /dev/null +++ b/.github/workflows/Build.yml @@ -0,0 +1,243 @@ +#-------------------------------------------------------------------------------- +# Workflow configuration +#-------------------------------------------------------------------------------- + +name: Deploy +on: + push: # Run on push + paths-ignore: # File patterns to ignore + - '**.md' # Ignore changes to *.md files + + pull_request: # Run on pull-request + paths-ignore: # File-patterns to ignore + - '**.md' # Ignore changes to *.md files + +#-------------------------------------------------------------------------------- +# Define application name & version +#-------------------------------------------------------------------------------- + +env: + VERSION: "1.0.0" + EXECUTABLE: "RFID-TaskFlow" + APPLICATION: "RFID TaskFlow" + UNIXNAME: "rfid-taskflow" + QMAKE_PROJECT: "RFID-TaskFlow.pro" + QML_DIR_NIX: "qml" + QML_DIR_WIN: "qml" + PUBLISHER: "Matusica S.A. de C.V." + QT_VERSION: 6.4.1 + QT_MODULES: qtserialport qtconnectivity qtmultimedia + QMAKE: qmake6 + CORES: 12 + +#-------------------------------------------------------------------------------- +# Workflow jobs (GNU/Linux, macOS & Windows) +#-------------------------------------------------------------------------------- + +jobs: + build-linux: + runs-on: ubuntu-20.04 + name: '🐧 Ubuntu 20.04' + steps: + - name: '🧰 Checkout' + uses: actions/checkout@v2 + + - name: '⚙️ Cache Qt' + id: cache-qt + uses: actions/cache@v1 + with: + path: ../Qt + key: ${{runner.os}}-qt${{env.QT_VERSION}} + + - name: '⚙️ Install Qt' + uses: jurplel/install-qt-action@v2 + with: + version: ${{env.QT_VERSION}} + modules: ${{env.QT_MODULES}} + aqtversion: '==2.0.0' + cached: ${{steps.cache-qt.outputs.cache-hit}} + + # Install additional dependencies, stolen from: + # https://github.com/mapeditor/tiled/blob/master/.github/workflows/packages.yml + - name: '⚙️ Install dependencies' + run: | + sudo apt-get update + sudo apt-get install libgl1-mesa-dev libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libzstd-dev libssl-dev libusb-dev + sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio + + - name: '🚧 Compile application' + run: | + ${{env.QMAKE}} ${{env.QMAKE_PROJECT}} CONFIG+=release PREFIX=/usr + make -j${{env.CORES}} + + - name: '⚙️ Install linuxdeploy' + run: | + wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage + wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage + chmod +x linuxdeploy-x86_64.AppImage + chmod +x linuxdeploy-plugin-qt-x86_64.AppImage + + - name: '📦 Create AppImage' + run: | + export QML_SOURCES_PATHS="${{env.QML_DIR_NIX}}" + export QMAKE=/home/runner/work/${{env.EXECUTABLE}}/Qt/${{env.QT_VERSION}}/gcc_64/bin/qmake6 + export PATH=/home/runner/work/${{env.EXECUTABLE}}/Qt/${{env.QT_VERSION}}/gcc_64/libexec:$PATH + ./linuxdeploy-x86_64.AppImage --appdir AppDir -e ${{env.UNIXNAME}} -i deploy/linux/${{env.UNIXNAME}}.png -d deploy/linux/${{env.UNIXNAME}}.desktop --plugin qt --output appimage + rm linuxdeploy-x86_64.AppImage + rm linuxdeploy-plugin-qt-x86_64.AppImage + mv *.AppImage ${{env.EXECUTABLE}}-${{env.VERSION}}-Linux.AppImage + + - name: '📤 Upload artifact: AppImage' + uses: actions/upload-artifact@v2 + with: + name: ${{env.EXECUTABLE}}-${{env.VERSION}}-Linux.AppImage + path: ${{env.EXECUTABLE}}-${{env.VERSION}}-Linux.AppImage + + # macOS build + build-mac: + runs-on: macos-latest + name: '🍎 macOS' + steps: + - name: '🧰 Checkout' + uses: actions/checkout@v2 + + - name: '⚙️ Cache Qt' + id: cache-qt + uses: actions/cache@v1 + with: + path: ../Qt + key: ${{runner.os}}-qt${{env.QT_VERSION}} + + - name: '⚙️ Install Qt' + uses: jurplel/install-qt-action@v2 + with: + version: ${{env.QT_VERSION}} + modules: ${{env.QT_MODULES}} + aqtversion: '==2.0.0' + cached: ${{steps.cache-qt.outputs.cache-hit}} + + - name: '🚧 Compile application' + run: | + ${{env.QMAKE}} ${{env.QMAKE_PROJECT}} CONFIG+=release PREFIX=/usr + make -j${{env.CORES}} + + - name: '📦 Package application (macdeployqt and zipfile)' + run: | + macdeployqt ${{env.EXECUTABLE}}.app -qmldir="${{env.QML_DIR_NIX}}" + mv "${{env.EXECUTABLE}}.app" "${{env.APPLICATION}}.app" + + # ZIP application "%AppName%-%Version%-macOS.zip" + # We use ditto instead of zip to use the same commands as Finder + ditto -c -k --sequesterRsrc --keepParent "${{env.APPLICATION}}.app" ${{env.EXECUTABLE}}-${{env.VERSION}}-macOS.zip + + - name: '📤 Upload artifact: ZIP' + uses: actions/upload-artifact@v2 + with: + name: ${{env.EXECUTABLE}}-${{env.VERSION}}-macOS.zip + path: ${{env.EXECUTABLE}}-${{env.VERSION}}-macOS.zip + + # Windows build + build-windows: + runs-on: windows-latest + name: '🧊 Windows' + steps: + - name: '🧰 Checkout' + uses: actions/checkout@v2 + + - name: '⚙️ Configure MSVC' + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: x64 + spectre: true + + - name: '⚙️ Cache Qt' + id: cache-qt + uses: actions/cache@v1 + with: + path: ../Qt + key: ${{runner.os}}-qt${{env.QT_VERSION}} + + - name: '⚙️ Install Qt' + uses: jurplel/install-qt-action@v2 + with: + version: ${{env.QT_VERSION}} + modules: ${{env.QT_MODULES}} + aqtversion: '==2.0.0' + cached: ${{steps.cache-qt.outputs.cache-hit}} + + - name: '🚧 Compile application' + run: | + ${{env.QMAKE}} ${{env.QMAKE_PROJECT}} CONFIG+=release + nmake + + - name: '📦 Package application (windeployqt)' + run: | + mkdir bin + move release/${{env.EXECUTABLE}}.exe bin + windeployqt bin/${{env.EXECUTABLE}}.exe -qmldir="${{env.QML_DIR_WIN}}" --compiler-runtime + mkdir "${{env.APPLICATION}}" + move bin "${{env.APPLICATION}}" + xcopy deploy\windows\resources\icon.ico "${{env.APPLICATION}}" + #xcopy deploy\windows\openssl\*.dll "${{env.APPLICATION}}\bin" + move "${{env.APPLICATION}}" deploy\windows\nsis\ + + - name: '📦 Portable application' + run: | + mkdir "${{env.EXECUTABLE}}-${{env.VERSION}}-Windows" + xcopy "deploy\windows\nsis\${{env.APPLICATION}}\icon.ico" "${{env.EXECUTABLE}}-${{env.VERSION}}-Windows" + xcopy "deploy\windows\nsis\${{env.APPLICATION}}\bin" "${{env.EXECUTABLE}}-${{env.VERSION}}-Windows" /E + Compress-Archive -Path "${{env.EXECUTABLE}}-${{env.VERSION}}-Windows" -DestinationPath "${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.zip" + + - name: '📦 Make NSIS installer' + uses: joncloud/makensis-action@v3.6 + with: + script-file: deploy/windows/nsis/setup.nsi + + - name: '📦 Check NSIS version & hash' + run: | + makensis /HDRINFO + + - name: '📦 Rename installer' + run: | + dir + cd deploy/windows/nsis/ + dir + ren *.exe ${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.exe + + - name: '📤 Upload artifact: NSIS installer' + uses: actions/upload-artifact@v2 + with: + name: ${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.exe + path: deploy/windows/nsis/${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.exe + + - name: '📤 Upload artifact: Portable application' + uses: actions/upload-artifact@v2 + with: + name: ${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.zip + path: ${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.zip + + # Upload continuous build + upload: + name: '🗂 Create release and upload artifacts' + needs: + - build-mac + - build-windows + - build-linux + runs-on: ubuntu-20.04 + steps: + - name: '📥 Download artifacts' + uses: actions/download-artifact@v2 + - name: '🗂 Inspect directory after downloading artifacts' + run: ls -alFR + - name: '🚀 Create release and upload artifacts' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + wget -q https://github.com/TheAssassin/pyuploadtool/releases/download/continuous/pyuploadtool-x86_64.AppImage + chmod +x pyuploadtool-x86_64.AppImage + ./pyuploadtool-x86_64.AppImage **/${{env.EXECUTABLE}}-${{env.VERSION}}-Linux.AppImage + ./pyuploadtool-x86_64.AppImage **/${{env.EXECUTABLE}}-${{env.VERSION}}-macOS.zip + ./pyuploadtool-x86_64.AppImage **/${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.exe + ./pyuploadtool-x86_64.AppImage **/${{env.EXECUTABLE}}-${{env.VERSION}}-Windows.zip + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2284c29 --- /dev/null +++ b/.gitignore @@ -0,0 +1,30 @@ + +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# Qt project file +*.pro.user diff --git a/Qt-QrCodeGenerator.pri b/Qt-QrCodeGenerator.pri new file mode 100644 index 0000000..26f6039 --- /dev/null +++ b/Qt-QrCodeGenerator.pri @@ -0,0 +1,33 @@ +# +# Copyright (c) 2023 Alex Spataru +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# + +QT += core gui svg + +INCLUDEPATH += $$PWD/src + +HEADERS += \ + $$PWD/src/QrCodeGenerator.h \ + $$PWD/src/qrcodegen/qrcodegen.h + +SOURCES += \ + $$PWD/src/QrCodeGenerator.cpp \ + $$PWD/src/qrcodegen/qrcodegen.cpp diff --git a/Qt-QrCodeGenerator.pro b/Qt-QrCodeGenerator.pro new file mode 100644 index 0000000..a7f7551 --- /dev/null +++ b/Qt-QrCodeGenerator.pro @@ -0,0 +1,33 @@ +# +# Copyright (c) 2023 Alex Spataru +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# + +TARGET = Qt-QrCodeGenerator +TEMPLATE = lib + +DEFINES += QR_CODE_GENERATOR_LIBRARY + +include($$PWD/Qt-QrCodeGenerator.pri) + +unix { + target.path = /usr/lib + INSTALLS += target +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..f70a4c9 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# Qt QR Code Generator Library + +Qt QR Code Generator is a simple C++ class that uses the [qrcodegen](https://github.com/nayuki/QR-Code-generator) library to generate QR codes from QStrings in Qt applications. + +[![Screenshot](example/screenshot.png)](example/screenshot.png) + +## Usage + +1. Copy the *Qt-QrCodeGenerator* folder in your `lib` folder. +2. Include the *Qt-QrCodeGenerator* project include (pri) file using the `include()` qmake function. +3. Use the `QrCodeGenerator` class in your code: + +```cpp +#include + +QrCodeGenerator generator; +QString data = "https://www.example.com"; +QImage qrCodeImage = generator.generateQRCode(data); +``` + +4. That's all! Check the [example](example) project as a reference for your project if needed. + +## License + +This project is licensed under the MIT License. See the [LICENSE](LICENSE.md) file for details. \ No newline at end of file diff --git a/example/Example.pro b/example/Example.pro new file mode 100644 index 0000000..4ab08a0 --- /dev/null +++ b/example/Example.pro @@ -0,0 +1,35 @@ +# +# Copyright (c) 2023 Alex Spataru +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# + +TEMPLATE = app +TARGET = QR-Example + +QT += core gui svg widgets + +include(../Qt-QrCodeGenerator.pri) + +HEADERS += \ + MainWindow.h + +SOURCES += \ + MainWindow.cpp \ + main.cpp diff --git a/example/MainWindow.cpp b/example/MainWindow.cpp new file mode 100644 index 0000000..e3c43dc --- /dev/null +++ b/example/MainWindow.cpp @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2023 Alex Spataru + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "MainWindow.h" + +MainWindow::MainWindow() { + // Initialize layout-related widgets + m_centralWidget = new QWidget(this); + m_header = new QWidget(m_centralWidget); + + // Initialize horizontal layout widgets + m_label = new QLabel(tr("Message") + ": ", m_header); + m_pushButton = new QPushButton(tr("Generate QR Code"), m_header); + m_lineEdit = new QLineEdit(m_header); + + // Initialize QR code image label + m_qrCodeDisplay = new QLabel(m_centralWidget); + m_qrCodeDisplay->setMinimumSize(QSize(500, 500)); + m_qrCodeDisplay->setMaximumSize(QSize(500, 500)); + + // Setup horizontal layout for line edit & push button + m_verticalLayout = new QVBoxLayout(m_centralWidget); + m_headerLayout = new QHBoxLayout(m_header); + m_headerLayout->addWidget(m_label); + m_headerLayout->addWidget(m_lineEdit); + m_headerLayout->addWidget(m_pushButton); + m_headerLayout->setContentsMargins(0, 0, 0, 0); + m_headerLayout->setStretch(1, 1); + + // Setup vertical layout with QR code label & QR code generation controls + m_verticalLayout->addWidget(m_header); + m_verticalLayout->addWidget(m_qrCodeDisplay); + m_verticalLayout->setStretch(0, 1); + + // Set central widget & resize window to minimum size possible + setCentralWidget(m_centralWidget); + setFixedSize(minimumSize()); + + // Set window title + setWindowTitle(tr("QR Code Generator")); + + // Disable "Generate QR code" button when line edit contains empty text + connect(m_lineEdit, &QLineEdit::textChanged, this, [this](const QString& text) { + m_pushButton->setEnabled(!text.isEmpty()); + }); + + // Update QR code when user clicks on the generate QR code button + connect(m_pushButton, &QPushButton::clicked, this, &MainWindow::onGenerateButtonClicked); + + // Set "Hello World" text & generate QR code + m_lineEdit->setText(tr("Hello World!")); + onGenerateButtonClicked(); +} + +MainWindow::~MainWindow() { + delete m_label; + delete m_lineEdit; + delete m_pushButton; + delete m_qrCodeDisplay; + delete m_headerLayout; + delete m_verticalLayout; + delete m_header; + delete m_centralWidget; +} + +void MainWindow::onGenerateButtonClicked() { + // Get text from line edit + auto text = m_lineEdit->text(); + + // Generate QR code from text + auto image = m_generator.generateQr(text); + + // Display generated image + m_qrCodeDisplay->setPixmap(QPixmap::fromImage(image)); +} diff --git a/example/MainWindow.h b/example/MainWindow.h new file mode 100644 index 0000000..90174d2 --- /dev/null +++ b/example/MainWindow.h @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2023 Alex Spataru + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include + +class MainWindow : public QMainWindow { + Q_OBJECT + +public: + explicit MainWindow(); + ~MainWindow(); + +private Q_SLOTS: + void onGenerateButtonClicked(); + +private: + QrCodeGenerator m_generator; + + QWidget *m_header; + QWidget *m_centralWidget; + + QLabel *m_label; + QLineEdit *m_lineEdit; + QLabel *m_qrCodeDisplay; + QPushButton *m_pushButton; + + QHBoxLayout *m_headerLayout; + QVBoxLayout *m_verticalLayout; +}; diff --git a/example/main.cpp b/example/main.cpp new file mode 100644 index 0000000..409376b --- /dev/null +++ b/example/main.cpp @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2023 Alex Spataru + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "MainWindow.h" + +int main(int argc, char** argv) { + QApplication app(argc, argv); + MainWindow window; + window.show(); + return app.exec(); +} diff --git a/example/screenshot.png b/example/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..8e0a6da60bad40404f8877fc3cf9c790a4b246dc GIT binary patch literal 373215 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
cI^fd1Cw@$`^#7LL9(FJ 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

Y*!Az| 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%0AL<8EiHW*rcJ`8U>{_4y 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 z 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⁣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 + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "QrCodeGenerator.h" + +#include +#include + +#include +#include + +QrCodeGenerator::QrCodeGenerator(QObject *parent) : QObject(parent) {} + +QImage QrCodeGenerator::generateQr(const QString &data, const quint16 size, + const quint16 borderSize, + qrcodegen::QrCode::Ecc errorCorrection) { + QByteArray byteArray = data.toUtf8(); + const qrcodegen::QrCode qrCode = qrcodegen::QrCode::encodeText(byteArray.constData(), + errorCorrection); + return qrCodeToImage(qrCode, borderSize, size); +} + +QString QrCodeGenerator::toSvgString(const qrcodegen::QrCode &qr, quint16 border) const { + if (border > INT_MAX / 2 || border * 2 > INT_MAX - qr.getSize()) + throw std::overflow_error("Border too large"); + + std::ostringstream sb; + sb << "\n"; + sb << "\n"; + sb << "\n"; + sb << "\t\n"; + sb << "\t\n"; + sb << "\n"; + + return QString::fromStdString(sb.str()); +} + +QImage QrCodeGenerator::qrCodeToImage(const qrcodegen::QrCode &qrCode, quint16 border, + const quint16 size) const { + auto svg = toSvgString(qrCode, border); + QSvgRenderer render(svg.toUtf8()); + QImage image(size, size, QImage::Format_Mono); + image.fill(Qt::white); + QPainter painter(&image); + render.render(&painter); + return image; +} diff --git a/src/QrCodeGenerator.h b/src/QrCodeGenerator.h new file mode 100644 index 0000000..ac57900 --- /dev/null +++ b/src/QrCodeGenerator.h @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2023 Alex Spataru + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#pragma once + +#include +#include +#include + +#include "qrcodegen/qrcodegen.h" + +/** + * @class QrCodeGenerator + * @brief The QrCodeGenerator class is a simple C++ class that uses the qrcodegen library to + * generate QR codes from QStrings in Qt applications. + */ +class QrCodeGenerator : public QObject { +public: + /** + * @brief Constructs a QrCodeGenerator object. + * @param parent The parent QObject. + */ + explicit QrCodeGenerator(QObject *parent = nullptr); + + /** + * @brief Generates a QR code from the given data and error correction level. + * @param data The QString containing the data to encode in the QR code. + * @param size The desired width/height of the generated image (default: 500). + * @param borderSize The desired border width of the generated image (default: 1). + * @param errorCorrection The desired error correction level (default: + * qrcodegen::QrCode::Ecc::MEDIUM). + * + * @return QImage containing the generated QR code. + */ + QImage generateQr(const QString &data, const quint16 size = 500, const quint16 borderSize = 1, + qrcodegen::QrCode::Ecc errorCorrection = qrcodegen::QrCode::Ecc::MEDIUM); + +private: + /** + * @brief Converts a qrcodegen::QrCode object to a SVG image. + * @param qrCode The qrcodegen::QrCode object to convert. + * @param borderSize The desired border width of the generated image (default: 1). + * + * @return QImage containing the QR code. + */ + QString toSvgString(const qrcodegen::QrCode &qr, quint16 border) const; + + /** + * @brief Converts a qrcodegen::QrCode object to a QImage. + * @param qrCode The qrcodegen::QrCode object to convert. + * @param size The desired width/height of the generated image. + * @param borderSize The desired border width of the generated image. + * + * @return QImage containing the QR code. + */ + QImage qrCodeToImage(const qrcodegen::QrCode &qrCode, quint16 border, const quint16 size) const; +}; diff --git a/src/qrcodegen/qrcodegen.cpp b/src/qrcodegen/qrcodegen.cpp new file mode 100644 index 0000000..9e0e290 --- /dev/null +++ b/src/qrcodegen/qrcodegen.cpp @@ -0,0 +1,813 @@ +/* + * QR Code generator library (C++) + * + * Copyright (c) Project Nayuki. (MIT License) + * https://www.nayuki.io/page/qr-code-generator-library + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * - The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * - The Software is provided "as is", without warranty of any kind, express or + * implied, including but not limited to the warranties of merchantability, + * fitness for a particular purpose and noninfringement. In no event shall the + * authors or copyright holders be liable for any claim, damages or other + * liability, whether in an action of contract, tort or otherwise, arising from, + * out of or in connection with the Software or the use or other dealings in the + * Software. + */ + +#include "qrcodegen.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +using std::int8_t; +using std::size_t; +using std::uint8_t; +using std::vector; + +namespace qrcodegen { + +/*---- Class QrSegment ----*/ + +QrSegment::Mode::Mode(int mode, int cc0, int cc1, int cc2) : modeBits(mode) { + numBitsCharCount[0] = cc0; + numBitsCharCount[1] = cc1; + numBitsCharCount[2] = cc2; +} + +int QrSegment::Mode::getModeBits() const { + return modeBits; +} + +int QrSegment::Mode::numCharCountBits(int ver) const { + return numBitsCharCount[(ver + 7) / 17]; +} + +const QrSegment::Mode QrSegment::Mode::NUMERIC(0x1, 10, 12, 14); +const QrSegment::Mode QrSegment::Mode::ALPHANUMERIC(0x2, 9, 11, 13); +const QrSegment::Mode QrSegment::Mode::BYTE(0x4, 8, 16, 16); +const QrSegment::Mode QrSegment::Mode::KANJI(0x8, 8, 10, 12); +const QrSegment::Mode QrSegment::Mode::ECI(0x7, 0, 0, 0); + +QrSegment QrSegment::makeBytes(const vector &data) { + if (data.size() > static_cast(INT_MAX)) + throw std::length_error("Data too long"); + BitBuffer bb; + for (uint8_t b : data) + bb.appendBits(b, 8); + return QrSegment(Mode::BYTE, static_cast(data.size()), std::move(bb)); +} + +QrSegment QrSegment::makeNumeric(const char *digits) { + BitBuffer bb; + int accumData = 0; + int accumCount = 0; + int charCount = 0; + for (; *digits != '\0'; digits++, charCount++) { + char c = *digits; + if (c < '0' || c > '9') + throw std::domain_error("String contains non-numeric characters"); + accumData = accumData * 10 + (c - '0'); + accumCount++; + if (accumCount == 3) { + bb.appendBits(static_cast(accumData), 10); + accumData = 0; + accumCount = 0; + } + } + if (accumCount > 0) // 1 or 2 digits remaining + bb.appendBits(static_cast(accumData), accumCount * 3 + 1); + return QrSegment(Mode::NUMERIC, charCount, std::move(bb)); +} + +QrSegment QrSegment::makeAlphanumeric(const char *text) { + BitBuffer bb; + int accumData = 0; + int accumCount = 0; + int charCount = 0; + for (; *text != '\0'; text++, charCount++) { + const char *temp = std::strchr(ALPHANUMERIC_CHARSET, *text); + if (temp == nullptr) + throw std::domain_error("String contains unencodable characters in alphanumeric mode"); + accumData = accumData * 45 + static_cast(temp - ALPHANUMERIC_CHARSET); + accumCount++; + if (accumCount == 2) { + bb.appendBits(static_cast(accumData), 11); + accumData = 0; + accumCount = 0; + } + } + if (accumCount > 0) // 1 character remaining + bb.appendBits(static_cast(accumData), 6); + return QrSegment(Mode::ALPHANUMERIC, charCount, std::move(bb)); +} + +vector QrSegment::makeSegments(const char *text) { + // Select the most efficient segment encoding automatically + vector result; + if (*text == '\0') + ; // Leave result empty + else if (isNumeric(text)) + result.push_back(makeNumeric(text)); + else if (isAlphanumeric(text)) + result.push_back(makeAlphanumeric(text)); + else { + vector bytes; + for (; *text != '\0'; text++) + bytes.push_back(static_cast(*text)); + result.push_back(makeBytes(bytes)); + } + return result; +} + +QrSegment QrSegment::makeEci(long assignVal) { + BitBuffer bb; + if (assignVal < 0) + throw std::domain_error("ECI assignment value out of range"); + else if (assignVal < (1 << 7)) + bb.appendBits(static_cast(assignVal), 8); + else if (assignVal < (1 << 14)) { + bb.appendBits(2, 2); + bb.appendBits(static_cast(assignVal), 14); + } else if (assignVal < 1000000L) { + bb.appendBits(6, 3); + bb.appendBits(static_cast(assignVal), 21); + } else + throw std::domain_error("ECI assignment value out of range"); + return QrSegment(Mode::ECI, 0, std::move(bb)); +} + +QrSegment::QrSegment(const Mode &md, int numCh, const std::vector &dt) + : mode(&md), + numChars(numCh), + data(dt) { + if (numCh < 0) + throw std::domain_error("Invalid value"); +} + +QrSegment::QrSegment(const Mode &md, int numCh, std::vector &&dt) + : mode(&md), + numChars(numCh), + data(std::move(dt)) { + if (numCh < 0) + throw std::domain_error("Invalid value"); +} + +int QrSegment::getTotalBits(const vector &segs, int version) { + int result = 0; + for (const QrSegment &seg : segs) { + int ccbits = seg.mode->numCharCountBits(version); + if (seg.numChars >= (1L << ccbits)) + return -1; // The segment's length doesn't fit the field's bit width + if (4 + ccbits > INT_MAX - result) + return -1; // The sum will overflow an int type + result += 4 + ccbits; + if (seg.data.size() > static_cast(INT_MAX - result)) + return -1; // The sum will overflow an int type + result += static_cast(seg.data.size()); + } + return result; +} + +bool QrSegment::isNumeric(const char *text) { + for (; *text != '\0'; text++) { + char c = *text; + if (c < '0' || c > '9') + return false; + } + return true; +} + +bool QrSegment::isAlphanumeric(const char *text) { + for (; *text != '\0'; text++) { + if (std::strchr(ALPHANUMERIC_CHARSET, *text) == nullptr) + return false; + } + return true; +} + +const QrSegment::Mode &QrSegment::getMode() const { + return *mode; +} + +int QrSegment::getNumChars() const { + return numChars; +} + +const std::vector &QrSegment::getData() const { + return data; +} + +const char *QrSegment::ALPHANUMERIC_CHARSET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:"; + +/*---- Class QrCode ----*/ + +int QrCode::getFormatBits(Ecc ecl) { + switch (ecl) { + case Ecc::LOW: + return 1; + case Ecc::MEDIUM: + return 0; + case Ecc::QUARTILE: + return 3; + case Ecc::HIGH: + return 2; + default: + throw std::logic_error("Unreachable"); + } +} + +QrCode QrCode::encodeText(const char *text, Ecc ecl) { + vector segs = QrSegment::makeSegments(text); + return encodeSegments(segs, ecl); +} + +QrCode QrCode::encodeBinary(const vector &data, Ecc ecl) { + vector segs{QrSegment::makeBytes(data)}; + return encodeSegments(segs, ecl); +} + +QrCode QrCode::encodeSegments(const vector &segs, Ecc ecl, int minVersion, + int maxVersion, int mask, bool boostEcl) { + if (!(MIN_VERSION <= minVersion && minVersion <= maxVersion && maxVersion <= MAX_VERSION) + || mask < -1 || mask > 7) + throw std::invalid_argument("Invalid value"); + + // Find the minimal version number to use + int version, dataUsedBits; + for (version = minVersion;; version++) { + int dataCapacityBits = getNumDataCodewords(version, ecl) * 8; // Number of data bits available + dataUsedBits = QrSegment::getTotalBits(segs, version); + if (dataUsedBits != -1 && dataUsedBits <= dataCapacityBits) + break; // This version number is found to be suitable + if (version >= maxVersion) { // All versions in the range could not fit the given data + std::ostringstream sb; + if (dataUsedBits == -1) + sb << "Segment too long"; + else { + sb << "Data length = " << dataUsedBits << " bits, "; + sb << "Max capacity = " << dataCapacityBits << " bits"; + } + throw data_too_long(sb.str()); + } + } + assert(dataUsedBits != -1); + + // Increase the error correction level while the data still fits in the current version number + for (Ecc newEcl : {Ecc::MEDIUM, Ecc::QUARTILE, Ecc::HIGH}) { // From low to high + if (boostEcl && dataUsedBits <= getNumDataCodewords(version, newEcl) * 8) + ecl = newEcl; + } + + // Concatenate all segments to create the data bit string + BitBuffer bb; + for (const QrSegment &seg : segs) { + bb.appendBits(static_cast(seg.getMode().getModeBits()), 4); + bb.appendBits(static_cast(seg.getNumChars()), + seg.getMode().numCharCountBits(version)); + bb.insert(bb.end(), seg.getData().begin(), seg.getData().end()); + } + assert(bb.size() == static_cast(dataUsedBits)); + + // Add terminator and pad up to a byte if applicable + size_t dataCapacityBits = static_cast(getNumDataCodewords(version, ecl)) * 8; + assert(bb.size() <= dataCapacityBits); + bb.appendBits(0, std::min(4, static_cast(dataCapacityBits - bb.size()))); + bb.appendBits(0, (8 - static_cast(bb.size() % 8)) % 8); + assert(bb.size() % 8 == 0); + + // Pad with alternating bytes until data capacity is reached + for (uint8_t padByte = 0xEC; bb.size() < dataCapacityBits; padByte ^= 0xEC ^ 0x11) + bb.appendBits(padByte, 8); + + // Pack bits into bytes in big endian + vector dataCodewords(bb.size() / 8); + for (size_t i = 0; i < bb.size(); i++) + dataCodewords.at(i >> 3) |= (bb.at(i) ? 1 : 0) << (7 - (i & 7)); + + // Create the QR Code object + return QrCode(version, ecl, dataCodewords, mask); +} + +QrCode::QrCode(int ver, Ecc ecl, const vector &dataCodewords, int msk) + : // Initialize fields and check arguments + version(ver), + errorCorrectionLevel(ecl) { + if (ver < MIN_VERSION || ver > MAX_VERSION) + throw std::domain_error("Version value out of range"); + if (msk < -1 || msk > 7) + throw std::domain_error("Mask value out of range"); + size = ver * 4 + 17; + size_t sz = static_cast(size); + modules = vector>(sz, vector(sz)); // Initially all light + isFunction = vector>(sz, vector(sz)); + + // Compute ECC, draw modules + drawFunctionPatterns(); + const vector allCodewords = addEccAndInterleave(dataCodewords); + drawCodewords(allCodewords); + + // Do masking + if (msk == -1) { // Automatically choose best mask + long minPenalty = LONG_MAX; + for (int i = 0; i < 8; i++) { + applyMask(i); + drawFormatBits(i); + long penalty = getPenaltyScore(); + if (penalty < minPenalty) { + msk = i; + minPenalty = penalty; + } + applyMask(i); // Undoes the mask due to XOR + } + } + assert(0 <= msk && msk <= 7); + mask = msk; + applyMask(msk); // Apply the final choice of mask + drawFormatBits(msk); // Overwrite old format bits + + isFunction.clear(); + isFunction.shrink_to_fit(); +} + +int QrCode::getVersion() const { + return version; +} + +int QrCode::getSize() const { + return size; +} + +QrCode::Ecc QrCode::getErrorCorrectionLevel() const { + return errorCorrectionLevel; +} + +int QrCode::getMask() const { + return mask; +} + +bool QrCode::getModule(int x, int y) const { + return 0 <= x && x < size && 0 <= y && y < size && module(x, y); +} + +void QrCode::drawFunctionPatterns() { + // Draw horizontal and vertical timing patterns + for (int i = 0; i < size; i++) { + setFunctionModule(6, i, i % 2 == 0); + setFunctionModule(i, 6, i % 2 == 0); + } + + // Draw 3 finder patterns (all corners except bottom right; overwrites some timing modules) + drawFinderPattern(3, 3); + drawFinderPattern(size - 4, 3); + drawFinderPattern(3, size - 4); + + // Draw numerous alignment patterns + const vector alignPatPos = getAlignmentPatternPositions(); + size_t numAlign = alignPatPos.size(); + for (size_t i = 0; i < numAlign; i++) { + for (size_t j = 0; j < numAlign; j++) { + // Don't draw on the three finder corners + if (!((i == 0 && j == 0) || (i == 0 && j == numAlign - 1) || (i == numAlign - 1 && j == 0))) + drawAlignmentPattern(alignPatPos.at(i), alignPatPos.at(j)); + } + } + + // Draw configuration data + drawFormatBits(0); // Dummy mask value; overwritten later in the constructor + drawVersion(); +} + +void QrCode::drawFormatBits(int msk) { + // Calculate error correction code and pack bits + int data = getFormatBits(errorCorrectionLevel) << 3 | msk; // errCorrLvl is uint2, msk is uint3 + int rem = data; + for (int i = 0; i < 10; i++) + rem = (rem << 1) ^ ((rem >> 9) * 0x537); + int bits = (data << 10 | rem) ^ 0x5412; // uint15 + assert(bits >> 15 == 0); + + // Draw first copy + for (int i = 0; i <= 5; i++) + setFunctionModule(8, i, getBit(bits, i)); + setFunctionModule(8, 7, getBit(bits, 6)); + setFunctionModule(8, 8, getBit(bits, 7)); + setFunctionModule(7, 8, getBit(bits, 8)); + for (int i = 9; i < 15; i++) + setFunctionModule(14 - i, 8, getBit(bits, i)); + + // Draw second copy + for (int i = 0; i < 8; i++) + setFunctionModule(size - 1 - i, 8, getBit(bits, i)); + for (int i = 8; i < 15; i++) + setFunctionModule(8, size - 15 + i, getBit(bits, i)); + setFunctionModule(8, size - 8, true); // Always dark +} + +void QrCode::drawVersion() { + if (version < 7) + return; + + // Calculate error correction code and pack bits + int rem = version; // version is uint6, in the range [7, 40] + for (int i = 0; i < 12; i++) + rem = (rem << 1) ^ ((rem >> 11) * 0x1F25); + long bits = static_cast(version) << 12 | rem; // uint18 + assert(bits >> 18 == 0); + + // Draw two copies + for (int i = 0; i < 18; i++) { + bool bit = getBit(bits, i); + int a = size - 11 + i % 3; + int b = i / 3; + setFunctionModule(a, b, bit); + setFunctionModule(b, a, bit); + } +} + +void QrCode::drawFinderPattern(int x, int y) { + for (int dy = -4; dy <= 4; dy++) { + for (int dx = -4; dx <= 4; dx++) { + int dist = std::max(std::abs(dx), std::abs(dy)); // Chebyshev/infinity norm + int xx = x + dx, yy = y + dy; + if (0 <= xx && xx < size && 0 <= yy && yy < size) + setFunctionModule(xx, yy, dist != 2 && dist != 4); + } + } +} + +void QrCode::drawAlignmentPattern(int x, int y) { + for (int dy = -2; dy <= 2; dy++) { + for (int dx = -2; dx <= 2; dx++) + setFunctionModule(x + dx, y + dy, std::max(std::abs(dx), std::abs(dy)) != 1); + } +} + +void QrCode::setFunctionModule(int x, int y, bool isDark) { + size_t ux = static_cast(x); + size_t uy = static_cast(y); + modules.at(uy).at(ux) = isDark; + isFunction.at(uy).at(ux) = true; +} + +bool QrCode::module(int x, int y) const { + return modules.at(static_cast(y)).at(static_cast(x)); +} + +vector QrCode::addEccAndInterleave(const vector &data) const { + if (data.size() != static_cast(getNumDataCodewords(version, errorCorrectionLevel))) + throw std::invalid_argument("Invalid argument"); + + // Calculate parameter numbers + int numBlocks = NUM_ERROR_CORRECTION_BLOCKS[static_cast(errorCorrectionLevel)][version]; + int blockEccLen = ECC_CODEWORDS_PER_BLOCK[static_cast(errorCorrectionLevel)][version]; + int rawCodewords = getNumRawDataModules(version) / 8; + int numShortBlocks = numBlocks - rawCodewords % numBlocks; + int shortBlockLen = rawCodewords / numBlocks; + + // Split data into blocks and append ECC to each block + vector> blocks; + const vector rsDiv = reedSolomonComputeDivisor(blockEccLen); + for (int i = 0, k = 0; i < numBlocks; i++) { + vector dat(data.cbegin() + k, + data.cbegin() + + (k + shortBlockLen - blockEccLen + (i < numShortBlocks ? 0 : 1))); + k += static_cast(dat.size()); + const vector ecc = reedSolomonComputeRemainder(dat, rsDiv); + if (i < numShortBlocks) + dat.push_back(0); + dat.insert(dat.end(), ecc.cbegin(), ecc.cend()); + blocks.push_back(std::move(dat)); + } + + // Interleave (not concatenate) the bytes from every block into a single sequence + vector result; + for (size_t i = 0; i < blocks.at(0).size(); i++) { + for (size_t j = 0; j < blocks.size(); j++) { + // Skip the padding byte in short blocks + if (i != static_cast(shortBlockLen - blockEccLen) + || j >= static_cast(numShortBlocks)) + result.push_back(blocks.at(j).at(i)); + } + } + assert(result.size() == static_cast(rawCodewords)); + return result; +} + +void QrCode::drawCodewords(const vector &data) { + if (data.size() != static_cast(getNumRawDataModules(version) / 8)) + throw std::invalid_argument("Invalid argument"); + + size_t i = 0; // Bit index into the data + // Do the funny zigzag scan + for (int right = size - 1; right >= 1; right -= 2) { // Index of right column in each column pair + if (right == 6) + right = 5; + for (int vert = 0; vert < size; vert++) { // Vertical counter + for (int j = 0; j < 2; j++) { + size_t x = static_cast(right - j); // Actual x coordinate + bool upward = ((right + 1) & 2) == 0; + size_t y = static_cast(upward ? size - 1 - vert : vert); // Actual y coordinate + if (!isFunction.at(y).at(x) && i < data.size() * 8) { + modules.at(y).at(x) = getBit(data.at(i >> 3), 7 - static_cast(i & 7)); + i++; + } + // If this QR Code has any remainder bits (0 to 7), they were assigned as + // 0/false/light by the constructor and are left unchanged by this method + } + } + } + assert(i == data.size() * 8); +} + +void QrCode::applyMask(int msk) { + if (msk < 0 || msk > 7) + throw std::domain_error("Mask value out of range"); + size_t sz = static_cast(size); + for (size_t y = 0; y < sz; y++) { + for (size_t x = 0; x < sz; x++) { + bool invert; + switch (msk) { + case 0: + invert = (x + y) % 2 == 0; + break; + case 1: + invert = y % 2 == 0; + break; + case 2: + invert = x % 3 == 0; + break; + case 3: + invert = (x + y) % 3 == 0; + break; + case 4: + invert = (x / 3 + y / 2) % 2 == 0; + break; + case 5: + invert = x * y % 2 + x * y % 3 == 0; + break; + case 6: + invert = (x * y % 2 + x * y % 3) % 2 == 0; + break; + case 7: + invert = ((x + y) % 2 + x * y % 3) % 2 == 0; + break; + default: + throw std::logic_error("Unreachable"); + } + modules.at(y).at(x) = modules.at(y).at(x) ^ (invert & !isFunction.at(y).at(x)); + } + } +} + +long QrCode::getPenaltyScore() const { + long result = 0; + + // Adjacent modules in row having same color, and finder-like patterns + for (int y = 0; y < size; y++) { + bool runColor = false; + int runX = 0; + std::array runHistory = {}; + for (int x = 0; x < size; x++) { + if (module(x, y) == runColor) { + runX++; + if (runX == 5) + result += PENALTY_N1; + else if (runX > 5) + result++; + } else { + finderPenaltyAddHistory(runX, runHistory); + if (!runColor) + result += finderPenaltyCountPatterns(runHistory) * PENALTY_N3; + runColor = module(x, y); + runX = 1; + } + } + result += finderPenaltyTerminateAndCount(runColor, runX, runHistory) * PENALTY_N3; + } + // Adjacent modules in column having same color, and finder-like patterns + for (int x = 0; x < size; x++) { + bool runColor = false; + int runY = 0; + std::array runHistory = {}; + for (int y = 0; y < size; y++) { + if (module(x, y) == runColor) { + runY++; + if (runY == 5) + result += PENALTY_N1; + else if (runY > 5) + result++; + } else { + finderPenaltyAddHistory(runY, runHistory); + if (!runColor) + result += finderPenaltyCountPatterns(runHistory) * PENALTY_N3; + runColor = module(x, y); + runY = 1; + } + } + result += finderPenaltyTerminateAndCount(runColor, runY, runHistory) * PENALTY_N3; + } + + // 2*2 blocks of modules having same color + for (int y = 0; y < size - 1; y++) { + for (int x = 0; x < size - 1; x++) { + bool color = module(x, y); + if (color == module(x + 1, y) && color == module(x, y + 1) && color == module(x + 1, y + 1)) + result += PENALTY_N2; + } + } + + // Balance of dark and light modules + int dark = 0; + for (const vector &row : modules) { + for (bool color : row) { + if (color) + dark++; + } + } + int total = size * size; // Note that size is odd, so dark/total != 1/2 + // Compute the smallest integer k >= 0 such that (45-5k)% <= dark/total <= (55+5k)% + int k = static_cast((std::abs(dark * 20L - total * 10L) + total - 1) / total) - 1; + assert(0 <= k && k <= 9); + result += k * PENALTY_N4; + assert(0 <= result + && result + <= 2568888L); // Non-tight upper bound based on default values of PENALTY_N1, ..., N4 + return result; +} + +vector QrCode::getAlignmentPatternPositions() const { + if (version == 1) + return vector(); + else { + int numAlign = version / 7 + 2; + int step = (version == 32) ? 26 : (version * 4 + numAlign * 2 + 1) / (numAlign * 2 - 2) * 2; + vector result; + for (int i = 0, pos = size - 7; i < numAlign - 1; i++, pos -= step) + result.insert(result.begin(), pos); + result.insert(result.begin(), 6); + return result; + } +} + +int QrCode::getNumRawDataModules(int ver) { + if (ver < MIN_VERSION || ver > MAX_VERSION) + throw std::domain_error("Version number out of range"); + int result = (16 * ver + 128) * ver + 64; + if (ver >= 2) { + int numAlign = ver / 7 + 2; + result -= (25 * numAlign - 10) * numAlign - 55; + if (ver >= 7) + result -= 36; + } + assert(208 <= result && result <= 29648); + return result; +} + +int QrCode::getNumDataCodewords(int ver, Ecc ecl) { + return getNumRawDataModules(ver) / 8 + - ECC_CODEWORDS_PER_BLOCK[static_cast(ecl)][ver] + * NUM_ERROR_CORRECTION_BLOCKS[static_cast(ecl)][ver]; +} + +vector QrCode::reedSolomonComputeDivisor(int degree) { + if (degree < 1 || degree > 255) + throw std::domain_error("Degree out of range"); + // Polynomial coefficients are stored from highest to lowest power, excluding the leading term + // which is always 1. For example the polynomial x^3 + 255x^2 + 8x + 93 is stored as the uint8 + // array {255, 8, 93}. + vector result(static_cast(degree)); + result.at(result.size() - 1) = 1; // Start off with the monomial x^0 + + // Compute the product polynomial (x - r^0) * (x - r^1) * (x - r^2) * ... * (x - r^{degree-1}), + // and drop the highest monomial term which is always 1x^degree. + // Note that r = 0x02, which is a generator element of this field GF(2^8/0x11D). + uint8_t root = 1; + for (int i = 0; i < degree; i++) { + // Multiply the current product by (x - r^i) + for (size_t j = 0; j < result.size(); j++) { + result.at(j) = reedSolomonMultiply(result.at(j), root); + if (j + 1 < result.size()) + result.at(j) ^= result.at(j + 1); + } + root = reedSolomonMultiply(root, 0x02); + } + return result; +} + +vector QrCode::reedSolomonComputeRemainder(const vector &data, + const vector &divisor) { + vector result(divisor.size()); + for (uint8_t b : data) { // Polynomial division + uint8_t factor = b ^ result.at(0); + result.erase(result.begin()); + result.push_back(0); + for (size_t i = 0; i < result.size(); i++) + result.at(i) ^= reedSolomonMultiply(divisor.at(i), factor); + } + return result; +} + +uint8_t QrCode::reedSolomonMultiply(uint8_t x, uint8_t y) { + // Russian peasant multiplication + int z = 0; + for (int i = 7; i >= 0; i--) { + z = (z << 1) ^ ((z >> 7) * 0x11D); + z ^= ((y >> i) & 1) * x; + } + assert(z >> 8 == 0); + return static_cast(z); +} + +int QrCode::finderPenaltyCountPatterns(const std::array &runHistory) const { + int n = runHistory.at(1); + assert(n <= size * 3); + bool core = n > 0 && runHistory.at(2) == n && runHistory.at(3) == n * 3 && runHistory.at(4) == n + && runHistory.at(5) == n; + return (core && runHistory.at(0) >= n * 4 && runHistory.at(6) >= n ? 1 : 0) + + (core && runHistory.at(6) >= n * 4 && runHistory.at(0) >= n ? 1 : 0); +} + +int QrCode::finderPenaltyTerminateAndCount(bool currentRunColor, int currentRunLength, + std::array &runHistory) const { + if (currentRunColor) { // Terminate dark run + finderPenaltyAddHistory(currentRunLength, runHistory); + currentRunLength = 0; + } + currentRunLength += size; // Add light border to final run + finderPenaltyAddHistory(currentRunLength, runHistory); + return finderPenaltyCountPatterns(runHistory); +} + +void QrCode::finderPenaltyAddHistory(int currentRunLength, std::array &runHistory) const { + if (runHistory.at(0) == 0) + currentRunLength += size; // Add light border to initial run + std::copy_backward(runHistory.cbegin(), runHistory.cend() - 1, runHistory.end()); + runHistory.at(0) = currentRunLength; +} + +bool QrCode::getBit(long x, int i) { + return ((x >> i) & 1) != 0; +} + +/*---- Tables of constants ----*/ + +const int QrCode::PENALTY_N1 = 3; +const int QrCode::PENALTY_N2 = 3; +const int QrCode::PENALTY_N3 = 40; +const int QrCode::PENALTY_N4 = 10; + +const int8_t QrCode::ECC_CODEWORDS_PER_BLOCK[4][41] = { + // Version: (note that index 0 is for padding, and is set to an illegal value) + // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + // 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level + {-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, + 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30}, // Low + {-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, + 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28}, // Medium + {-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, + 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30}, // Quartile + {-1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, + 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30}, // High +}; + +const int8_t QrCode::NUM_ERROR_CORRECTION_BLOCKS[4][41] = { + // Version: (note that index 0 is for padding, and is set to an illegal value) + // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + // 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level + {-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, + 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25}, // Low + {-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, + 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49}, // Medium + {-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, + 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68}, // Quartile + {-1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, + 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81}, // High +}; + +data_too_long::data_too_long(const std::string &msg) : std::length_error(msg) {} + +/*---- Class BitBuffer ----*/ + +BitBuffer::BitBuffer() : std::vector() {} + +void BitBuffer::appendBits(std::uint32_t val, int len) { + if (len < 0 || len > 31 || val >> len != 0) + throw std::domain_error("Value out of range"); + for (int i = len - 1; i >= 0; i--) // Append bit by bit + this->push_back(((val >> i) & 1) != 0); +} + +} // namespace qrcodegen diff --git a/src/qrcodegen/qrcodegen.h b/src/qrcodegen/qrcodegen.h new file mode 100644 index 0000000..87c394e --- /dev/null +++ b/src/qrcodegen/qrcodegen.h @@ -0,0 +1,573 @@ +/* + * QR Code generator library (C++) + * + * Copyright (c) Project Nayuki. (MIT License) + * https://www.nayuki.io/page/qr-code-generator-library + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * - The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * - The Software is provided "as is", without warranty of any kind, express or + * implied, including but not limited to the warranties of merchantability, + * fitness for a particular purpose and noninfringement. In no event shall the + * authors or copyright holders be liable for any claim, damages or other + * liability, whether in an action of contract, tort or otherwise, arising from, + * out of or in connection with the Software or the use or other dealings in the + * Software. + */ + +#pragma once + +#include +#include +#include +#include +#include + +namespace qrcodegen { + +/* + * A segment of character/binary/control data in a QR Code symbol. + * Instances of this class are immutable. + * The mid-level way to create a segment is to take the payload data + * and call a static factory function such as QrSegment::makeNumeric(). + * The low-level way to create a segment is to custom-make the bit buffer + * and call the QrSegment() constructor with appropriate values. + * This segment class imposes no length restrictions, but QR Codes have restrictions. + * Even in the most favorable conditions, a QR Code can only hold 7089 characters of data. + * Any segment longer than this is meaningless for the purpose of generating QR Codes. + */ +class QrSegment final { + + /*---- Public helper enumeration ----*/ + + /* + * Describes how a segment's data bits are interpreted. Immutable. + */ +public: + class Mode final { + + /*-- Constants --*/ + + public: + static const Mode NUMERIC; + + public: + static const Mode ALPHANUMERIC; + + public: + static const Mode BYTE; + + public: + static const Mode KANJI; + + public: + static const Mode ECI; + + /*-- Fields --*/ + + // The mode indicator bits, which is a uint4 value (range 0 to 15). + private: + int modeBits; + + // Number of character count bits for three different version ranges. + private: + int numBitsCharCount[3]; + + /*-- Constructor --*/ + + private: + Mode(int mode, int cc0, int cc1, int cc2); + + /*-- Methods --*/ + + /* + * (Package-private) Returns the mode indicator bits, which is an unsigned 4-bit value (range 0 + * to 15). + */ + public: + int getModeBits() const; + + /* + * (Package-private) Returns the bit width of the character count field for a segment in + * this mode in a QR Code at the given version number. The result is in the range [0, 16]. + */ + public: + int numCharCountBits(int ver) const; + }; + + /*---- Static factory functions (mid level) ----*/ + + /* + * Returns a segment representing the given binary data encoded in + * byte mode. All input byte vectors are acceptable. Any text string + * can be converted to UTF-8 bytes and encoded as a byte mode segment. + */ +public: + static QrSegment makeBytes(const std::vector &data); + + /* + * Returns a segment representing the given string of decimal digits encoded in numeric mode. + */ +public: + static QrSegment makeNumeric(const char *digits); + + /* + * Returns a segment representing the given text string encoded in alphanumeric mode. + * The characters allowed are: 0 to 9, A to Z (uppercase only), space, + * dollar, percent, asterisk, plus, hyphen, period, slash, colon. + */ +public: + static QrSegment makeAlphanumeric(const char *text); + + /* + * Returns a list of zero or more segments to represent the given text string. The result + * may use various segment modes and switch modes to optimize the length of the bit stream. + */ +public: + static std::vector makeSegments(const char *text); + + /* + * Returns a segment representing an Extended Channel Interpretation + * (ECI) designator with the given assignment value. + */ +public: + static QrSegment makeEci(long assignVal); + + /*---- Public static helper functions ----*/ + + /* + * Tests whether the given string can be encoded as a segment in numeric mode. + * A string is encodable iff each character is in the range 0 to 9. + */ +public: + static bool isNumeric(const char *text); + + /* + * Tests whether the given string can be encoded as a segment in alphanumeric mode. + * A string is encodable iff each character is in the following set: 0 to 9, A to Z + * (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon. + */ +public: + static bool isAlphanumeric(const char *text); + + /*---- Instance fields ----*/ + + /* The mode indicator of this segment. Accessed through getMode(). */ +private: + const Mode *mode; + + /* The length of this segment's unencoded data. Measured in characters for + * numeric/alphanumeric/kanji mode, bytes for byte mode, and 0 for ECI mode. + * Always zero or positive. Not the same as the data's bit length. + * Accessed through getNumChars(). */ +private: + int numChars; + + /* The data bits of this segment. Accessed through getData(). */ +private: + std::vector data; + + /*---- Constructors (low level) ----*/ + + /* + * Creates a new QR Code segment with the given attributes and data. + * The character count (numCh) must agree with the mode and the bit buffer length, + * but the constraint isn't checked. The given bit buffer is copied and stored. + */ +public: + QrSegment(const Mode &md, int numCh, const std::vector &dt); + + /* + * Creates a new QR Code segment with the given parameters and data. + * The character count (numCh) must agree with the mode and the bit buffer length, + * but the constraint isn't checked. The given bit buffer is moved and stored. + */ +public: + QrSegment(const Mode &md, int numCh, std::vector &&dt); + + /*---- Methods ----*/ + + /* + * Returns the mode field of this segment. + */ +public: + const Mode &getMode() const; + + /* + * Returns the character count field of this segment. + */ +public: + int getNumChars() const; + + /* + * Returns the data bits of this segment. + */ +public: + const std::vector &getData() const; + + // (Package-private) Calculates the number of bits needed to encode the given segments at + // the given version. Returns a non-negative number if successful. Otherwise returns -1 if a + // segment has too many characters to fit its length field, or the total bits exceeds INT_MAX. +public: + static int getTotalBits(const std::vector &segs, int version); + + /*---- Private constant ----*/ + + /* The set of all legal characters in alphanumeric mode, where + * each character value maps to the index in the string. */ +private: + static const char *ALPHANUMERIC_CHARSET; +}; + +/* + * A QR Code symbol, which is a type of two-dimension barcode. + * Invented by Denso Wave and described in the ISO/IEC 18004 standard. + * Instances of this class represent an immutable square grid of dark and light cells. + * The class provides static factory functions to create a QR Code from text or binary data. + * The class covers the QR Code Model 2 specification, supporting all versions (sizes) + * from 1 to 40, all 4 error correction levels, and 4 character encoding modes. + * + * Ways to create a QR Code object: + * - High level: Take the payload data and call QrCode::encodeText() or QrCode::encodeBinary(). + * - Mid level: Custom-make the list of segments and call QrCode::encodeSegments(). + * - Low level: Custom-make the array of data codeword bytes (including + * segment headers and final padding, excluding error correction codewords), + * supply the appropriate version number, and call the QrCode() constructor. + * (Note that all ways require supplying the desired error correction level.) + */ +class QrCode final { + + /*---- Public helper enumeration ----*/ + + /* + * The error correction level in a QR Code symbol. + */ +public: + enum class Ecc { + LOW = 0, // The QR Code can tolerate about 7% erroneous codewords + MEDIUM, // The QR Code can tolerate about 15% erroneous codewords + QUARTILE, // The QR Code can tolerate about 25% erroneous codewords + HIGH, // The QR Code can tolerate about 30% erroneous codewords + }; + + // Returns a value in the range 0 to 3 (unsigned 2-bit integer). +private: + static int getFormatBits(Ecc ecl); + + /*---- Static factory functions (high level) ----*/ + + /* + * Returns a QR Code representing the given Unicode text string at the given error correction + * level. As a conservative upper bound, this function is guaranteed to succeed for strings that + * have 2953 or fewer UTF-8 code units (not Unicode code points) if the low error correction level + * is used. The smallest possible QR Code version is automatically chosen for the output. The ECC + * level of the result may be higher than the ecl argument if it can be done without increasing + * the version. + */ +public: + static QrCode encodeText(const char *text, Ecc ecl); + + /* + * Returns a QR Code representing the given binary data at the given error correction level. + * This function always encodes using the binary segment mode, not any text mode. The maximum + * number of bytes allowed is 2953. The smallest possible QR Code version is automatically chosen + * for the output. The ECC level of the result may be higher than the ecl argument if it can be + * done without increasing the version. + */ +public: + static QrCode encodeBinary(const std::vector &data, Ecc ecl); + + /*---- Static factory functions (mid level) ----*/ + + /* + * Returns a QR Code representing the given segments with the given encoding parameters. + * The smallest possible QR Code version within the given range is automatically + * chosen for the output. Iff boostEcl is true, then the ECC level of the result + * may be higher than the ecl argument if it can be done without increasing the + * version. The mask number is either between 0 to 7 (inclusive) to force that + * mask, or -1 to automatically choose an appropriate mask (which may be slow). + * This function allows the user to create a custom sequence of segments that switches + * between modes (such as alphanumeric and byte) to encode text in less space. + * This is a mid-level API; the high-level API is encodeText() and encodeBinary(). + */ +public: + static QrCode encodeSegments(const std::vector &segs, Ecc ecl, int minVersion = 1, + int maxVersion = 40, int mask = -1, + bool boostEcl = true); // All optional parameters + + /*---- Instance fields ----*/ + + // Immutable scalar parameters: + + /* The version number of this QR Code, which is between 1 and 40 (inclusive). + * This determines the size of this barcode. */ +private: + int version; + + /* The width and height of this QR Code, measured in modules, between + * 21 and 177 (inclusive). This is equal to version * 4 + 17. */ +private: + int size; + + /* The error correction level used in this QR Code. */ +private: + Ecc errorCorrectionLevel; + + /* The index of the mask pattern used in this QR Code, which is between 0 and 7 (inclusive). + * Even if a QR Code is created with automatic masking requested (mask = -1), + * the resulting object still has a mask value between 0 and 7. */ +private: + int mask; + + // Private grids of modules/pixels, with dimensions of size*size: + + // The modules of this QR Code (false = light, true = dark). + // Immutable after constructor finishes. Accessed through getModule(). +private: + std::vector> modules; + + // Indicates function modules that are not subjected to masking. Discarded when constructor + // finishes. +private: + std::vector> isFunction; + + /*---- Constructor (low level) ----*/ + + /* + * Creates a new QR Code with the given version number, + * error correction level, data codeword bytes, and mask number. + * This is a low-level API that most users should not use directly. + * A mid-level API is the encodeSegments() function. + */ +public: + QrCode(int ver, Ecc ecl, const std::vector &dataCodewords, int msk); + + /*---- Public instance methods ----*/ + + /* + * Returns this QR Code's version, in the range [1, 40]. + */ +public: + int getVersion() const; + + /* + * Returns this QR Code's size, in the range [21, 177]. + */ +public: + int getSize() const; + + /* + * Returns this QR Code's error correction level. + */ +public: + Ecc getErrorCorrectionLevel() const; + + /* + * Returns this QR Code's mask, in the range [0, 7]. + */ +public: + int getMask() const; + + /* + * Returns the color of the module (pixel) at the given coordinates, which is false + * for light or true for dark. The top left corner has the coordinates (x=0, y=0). + * If the given coordinates are out of bounds, then false (light) is returned. + */ +public: + bool getModule(int x, int y) const; + + /*---- Private helper methods for constructor: Drawing function modules ----*/ + + // Reads this object's version field, and draws and marks all function modules. +private: + void drawFunctionPatterns(); + + // Draws two copies of the format bits (with its own error correction code) + // based on the given mask and this object's error correction level field. +private: + void drawFormatBits(int msk); + + // Draws two copies of the version bits (with its own error correction code), + // based on this object's version field, iff 7 <= version <= 40. +private: + void drawVersion(); + + // Draws a 9*9 finder pattern including the border separator, + // with the center module at (x, y). Modules can be out of bounds. +private: + void drawFinderPattern(int x, int y); + + // Draws a 5*5 alignment pattern, with the center module + // at (x, y). All modules must be in bounds. +private: + void drawAlignmentPattern(int x, int y); + + // Sets the color of a module and marks it as a function module. + // Only used by the constructor. Coordinates must be in bounds. +private: + void setFunctionModule(int x, int y, bool isDark); + + // Returns the color of the module at the given coordinates, which must be in range. +private: + bool module(int x, int y) const; + + /*---- Private helper methods for constructor: Codewords and masking ----*/ + + // Returns a new byte string representing the given data with the appropriate error correction + // codewords appended to it, based on this object's version and error correction level. +private: + std::vector addEccAndInterleave(const std::vector &data) const; + + // Draws the given sequence of 8-bit codewords (data and error correction) onto the entire + // data area of this QR Code. Function modules need to be marked off before this is called. +private: + void drawCodewords(const std::vector &data); + + // XORs the codeword modules in this QR Code with the given mask pattern. + // The function modules must be marked and the codeword bits must be drawn + // before masking. Due to the arithmetic of XOR, calling applyMask() with + // the same mask value a second time will undo the mask. A final well-formed + // QR Code needs exactly one (not zero, two, etc.) mask applied. +private: + void applyMask(int msk); + + // Calculates and returns the penalty score based on state of this QR Code's current modules. + // This is used by the automatic mask choice algorithm to find the mask pattern that yields the + // lowest score. +private: + long getPenaltyScore() const; + + /*---- Private helper functions ----*/ + + // Returns an ascending list of positions of alignment patterns for this version number. + // Each position is in the range [0,177), and are used on both the x and y axes. + // This could be implemented as lookup table of 40 variable-length lists of unsigned bytes. +private: + std::vector getAlignmentPatternPositions() const; + + // Returns the number of data bits that can be stored in a QR Code of the given version number, + // after all function modules are excluded. This includes remainder bits, so it might not be a + // multiple of 8. The result is in the range [208, 29648]. This could be implemented as a 40-entry + // lookup table. +private: + static int getNumRawDataModules(int ver); + + // Returns the number of 8-bit data (i.e. not error correction) codewords contained in any + // QR Code of the given version number and error correction level, with remainder bits discarded. + // This stateless pure function could be implemented as a (40*4)-cell lookup table. +private: + static int getNumDataCodewords(int ver, Ecc ecl); + + // Returns a Reed-Solomon ECC generator polynomial for the given degree. This could be + // implemented as a lookup table over all possible parameter values, instead of as an algorithm. +private: + static std::vector reedSolomonComputeDivisor(int degree); + + // Returns the Reed-Solomon error correction codeword for the given data and divisor polynomials. +private: + static std::vector + reedSolomonComputeRemainder(const std::vector &data, + const std::vector &divisor); + + // Returns the product of the two given field elements modulo GF(2^8/0x11D). + // All inputs are valid. This could be implemented as a 256*256 lookup table. +private: + static std::uint8_t reedSolomonMultiply(std::uint8_t x, std::uint8_t y); + + // Can only be called immediately after a light run is added, and + // returns either 0, 1, or 2. A helper function for getPenaltyScore(). +private: + int finderPenaltyCountPatterns(const std::array &runHistory) const; + + // Must be called at the end of a line (row or column) of modules. A helper function for + // getPenaltyScore(). +private: + int finderPenaltyTerminateAndCount(bool currentRunColor, int currentRunLength, + std::array &runHistory) const; + + // Pushes the given value to the front and drops the last value. A helper function for + // getPenaltyScore(). +private: + void finderPenaltyAddHistory(int currentRunLength, std::array &runHistory) const; + + // Returns true iff the i'th bit of x is set to 1. +private: + static bool getBit(long x, int i); + + /*---- Constants and tables ----*/ + + // The minimum version number supported in the QR Code Model 2 standard. +public: + static constexpr int MIN_VERSION = 1; + + // The maximum version number supported in the QR Code Model 2 standard. +public: + static constexpr int MAX_VERSION = 40; + + // For use in getPenaltyScore(), when evaluating which mask is best. +private: + static const int PENALTY_N1; + +private: + static const int PENALTY_N2; + +private: + static const int PENALTY_N3; + +private: + static const int PENALTY_N4; + +private: + static const std::int8_t ECC_CODEWORDS_PER_BLOCK[4][41]; + +private: + static const std::int8_t NUM_ERROR_CORRECTION_BLOCKS[4][41]; +}; + +/*---- Public exception class ----*/ + +/* + * Thrown when the supplied data does not fit any QR Code version. Ways to handle this exception + * include: + * - Decrease the error correction level if it was greater than Ecc::LOW. + * - If the encodeSegments() function was called with a maxVersion argument, then increase + * it if it was less than QrCode::MAX_VERSION. (This advice does not apply to the other + * factory functions because they search all versions up to QrCode::MAX_VERSION.) + * - Split the text data into better or optimal segments in order to reduce the number of bits + * required. + * - Change the text or binary data to be shorter. + * - Change the text to fit the character set of a particular segment mode (e.g. alphanumeric). + * - Propagate the error upward to the caller/user. + */ +class data_too_long : public std::length_error { + +public: + explicit data_too_long(const std::string &msg); +}; + +/* + * An appendable sequence of bits (0s and 1s). Mainly used by QrSegment. + */ +class BitBuffer final : public std::vector { + + /*---- Constructor ----*/ + + // Creates an empty bit buffer (length 0). +public: + BitBuffer(); + + /*---- Method ----*/ + + // Appends the given number of low-order bits of the given value + // to this buffer. Requires 0 <= len <= 31 and val < 2^len. +public: + void appendBits(std::uint32_t val, int len); +}; + +} // namespace qrcodegen