From c9fa963e71258c5adfb71cf1996cd1bcb33df0bb Mon Sep 17 00:00:00 2001 From: Roland Reichwein Date: Sun, 26 Feb 2023 08:54:17 +0100 Subject: Start with copy of whiteboard --- qrcode.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 qrcode.cpp (limited to 'qrcode.cpp') diff --git a/qrcode.cpp b/qrcode.cpp new file mode 100644 index 0000000..da747a5 --- /dev/null +++ b/qrcode.cpp @@ -0,0 +1,37 @@ +#include "qrcode.h" + +#include + +#include + +#include + +using namespace qrcodegen; +using namespace Magick; + +void QRCode::init() +{ + Magick::InitializeMagick(NULL); +} + +std::string QRCode::getQRCode(const std::string& data) +{ + QrCode qrc {QrCode::encodeText(data.c_str(), QrCode::Ecc::MEDIUM)}; + + int size {qrc.getSize()}; + + Image image(fmt::format("{0}x{0}", size).c_str(), "white"); + image.type(GrayscaleType); + + for (int x = 0; x < size; x++) { + for (int y = 0; y < size; y++) { + image.pixelColor(x, y, qrc.getModule(x, y) ? "black" : "white"); + } + } + + image.magick("PNG"); + + Blob blob; + image.write(&blob); + return std::string{(char*)blob.data(), blob.length()}; +} -- cgit v1.2.3