aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorselsta <selsta@sent.at>2026-05-26 13:20:32 +0200
committerselsta <selsta@sent.at>2026-05-26 20:07:27 +0200
commitbe9eadefcfaca08651ca13cca970e09fd8c4066f (patch)
tree7d0b6aacdaef3284e9a15c2fd1b4c1fa02b883e8 /src
parent8df248d12090cb71c0d2414d5454a41202d512ad (diff)
downloadmonzero-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
Diffstat (limited to 'src')
-rw-r--r--src/QR-Code-scanner/Decoder.cpp14
1 files changed, 9 insertions, 5 deletions
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);