diff options
| author | selsta <selsta@sent.at> | 2026-05-26 13:20:32 +0200 |
|---|---|---|
| committer | selsta <selsta@sent.at> | 2026-05-26 20:07:27 +0200 |
| commit | be9eadefcfaca08651ca13cca970e09fd8c4066f (patch) | |
| tree | 7d0b6aacdaef3284e9a15c2fd1b4c1fa02b883e8 | |
| parent | 8df248d12090cb71c0d2414d5454a41202d512ad (diff) | |
| download | monzero-gui-be9eadefcfaca08651ca13cca970e09fd8c4066f.tar.gz monzero-gui-be9eadefcfaca08651ca13cca970e09fd8c4066f.tar.xz monzero-gui-be9eadefcfaca08651ca13cca970e09fd8c4066f.zip | |
QR: skip QImage padding when filling quirc buffer
also update quirc submodule
| m--------- | external/quirc | 0 | ||||
| -rw-r--r-- | src/QR-Code-scanner/Decoder.cpp | 14 |
2 files changed, 9 insertions, 5 deletions
diff --git a/external/quirc b/external/quirc -Subproject 7e7ab596e4d0988faf1c12ae89c354b114181c4 +Subproject 927d680904dc95fdff4cd9d022eb374b438ff8f diff --git a/src/QR-Code-scanner/Decoder.cpp b/src/QR-Code-scanner/Decoder.cpp index 25ef0f04..57100006 100644 --- a/src/QR-Code-scanner/Decoder.cpp +++ b/src/QR-Code-scanner/Decoder.cpp @@ -28,6 +28,7 @@ #include "Decoder.h" +#include <cstring> #include <limits> #include "quirc.h" @@ -67,11 +68,14 @@ std::vector<std::string> QrDecoder::decodeGrayscale8(const QImage &image) { throw std::runtime_error("QUIRC: failed to get image buffer"); } -#if QT_VERSION >= QT_VERSION_CHECK(5, 10, 0) - std::copy(image.constBits(), image.constBits() + image.sizeInBytes(), rawImage); -#else - std::copy(image.constBits(), image.constBits() + image.byteCount(), rawImage); -#endif + + const int width = image.width(); + const int height = image.height(); + for (int y = 0; y < height; ++y) + { + std::memcpy(rawImage + y * width, image.constScanLine(y), width); + } + quirc_end(m_qr); const int count = quirc_count(m_qr); |
