aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGuillaume LE VAILLANT <glv@posteo.net>2018-10-14 13:55:59 +0200
committerGuillaume LE VAILLANT <glv@posteo.net>2018-10-14 13:55:59 +0200
commit79452bc9ac705d0882c3f2ce70397807877c6f37 (patch)
treeb0ad30d9c24aa9b7f32ec39a4e6866ad579d72c2 /src
parent7adeb694c17511ffcb1d3d0c0038f5f8b8684a5f (diff)
downloadmonzero-gui-79452bc9ac705d0882c3f2ce70397807877c6f37.tar.gz
monzero-gui-79452bc9ac705d0882c3f2ce70397807877c6f37.tar.xz
monzero-gui-79452bc9ac705d0882c3f2ce70397807877c6f37.zip
Add border to generated QR codes
Diffstat (limited to 'src')
-rw-r--r--src/libwalletqt/QRCodeImageProvider.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/libwalletqt/QRCodeImageProvider.cpp b/src/libwalletqt/QRCodeImageProvider.cpp
index 6d99b35c..0054bee5 100644
--- a/src/libwalletqt/QRCodeImageProvider.cpp
+++ b/src/libwalletqt/QRCodeImageProvider.cpp
@@ -7,12 +7,21 @@ QImage QRCodeImageProvider::genQrImage(const QString &id, QSize *size)
using namespace qrcodegen;
QrCode qrcode = QrCode::encodeText(id.toStdString().c_str(), QrCode::Ecc::MEDIUM);
- QImage img = QImage(qrcode.size, qrcode.size, QImage::Format_Mono);
- for (int y = 0; y < qrcode.size; ++y)
- for (int x = 0; x < qrcode.size; ++x)
- img.setPixel(x, y, !qrcode.getModule(x, y)); // 1 is black, not "255/white"
+ unsigned int black = 0;
+ unsigned int white = 1;
+ unsigned int borderSize = 4;
+ unsigned int imageSize = qrcode.size + (2 * borderSize);
+ QImage img = QImage(imageSize, imageSize, QImage::Format_Mono);
+
+ for (unsigned int y = 0; y < imageSize; ++y)
+ for (unsigned int x = 0; x < imageSize; ++x)
+ if ((x < borderSize) || (x >= imageSize - borderSize) || (y < borderSize) || (y >= imageSize - borderSize))
+ img.setPixel(x, y, white);
+ else
+ img.setPixel(x, y, qrcode.getModule(x - borderSize, y - borderSize) ? black : white);
if (size)
- *size = QSize(qrcode.size, qrcode.size);
+ *size = QSize(imageSize, imageSize);
+
return img;
}