diff options
| author | Guillaume LE VAILLANT <glv@posteo.net> | 2018-10-14 13:55:59 +0200 |
|---|---|---|
| committer | Guillaume LE VAILLANT <glv@posteo.net> | 2018-10-14 13:55:59 +0200 |
| commit | 79452bc9ac705d0882c3f2ce70397807877c6f37 (patch) | |
| tree | b0ad30d9c24aa9b7f32ec39a4e6866ad579d72c2 | |
| parent | 7adeb694c17511ffcb1d3d0c0038f5f8b8684a5f (diff) | |
| download | monzero-gui-79452bc9ac705d0882c3f2ce70397807877c6f37.tar.gz monzero-gui-79452bc9ac705d0882c3f2ce70397807877c6f37.tar.xz monzero-gui-79452bc9ac705d0882c3f2ce70397807877c6f37.zip | |
Add border to generated QR codes
| -rw-r--r-- | pages/Receive.qml | 2 | ||||
| -rw-r--r-- | src/libwalletqt/QRCodeImageProvider.cpp | 19 |
2 files changed, 15 insertions, 6 deletions
diff --git a/pages/Receive.qml b/pages/Receive.qml index 79b3e22b..2c55ef17 100644 --- a/pages/Receive.qml +++ b/pages/Receive.qml @@ -473,7 +473,7 @@ Rectangle { Image { id: qrCode anchors.fill: parent - anchors.margins: 6 + anchors.margins: 1 smooth: false fillMode: Image.PreserveAspectFit 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; } |
