From ff0eed87003e8a0440f0bdb8387adcc3ed31a573 Mon Sep 17 00:00:00 2001 From: Project Nayuki Date: Thu, 17 Aug 2017 21:37:04 +0000 Subject: [PATCH] Tweaked C++ and Java demo code for clarity. --- cpp/QrCodeGeneratorDemo.cpp | 32 +++++++++++-------- .../nayuki/qrcodegen/QrCodeGeneratorDemo.java | 2 +- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/cpp/QrCodeGeneratorDemo.cpp b/cpp/QrCodeGeneratorDemo.cpp index ed13d0b..d85a565 100644 --- a/cpp/QrCodeGeneratorDemo.cpp +++ b/cpp/QrCodeGeneratorDemo.cpp @@ -110,10 +110,9 @@ static void doSegmentDemo() { QrCode::Ecc::LOW); printQr(qr0); - std::vector segs; - segs.push_back(QrSegment::makeAlphanumeric(silver0)); - segs.push_back(QrSegment::makeNumeric(silver1)); - const QrCode qr1 = QrCode::encodeSegments(segs, QrCode::Ecc::LOW); + const QrCode qr1 = QrCode::encodeSegments( + {QrSegment::makeAlphanumeric(silver0), QrSegment::makeNumeric(silver1)}, + QrCode::Ecc::LOW); printQr(qr1); // Illustration "golden" @@ -125,18 +124,25 @@ static void doSegmentDemo() { QrCode::Ecc::LOW); printQr(qr2); - segs.clear(); std::vector bytes; for (const char *temp = golden0; *temp != '\0'; temp++) bytes.push_back(static_cast(*temp)); - segs.push_back(QrSegment::makeBytes(bytes)); - segs.push_back(QrSegment::makeNumeric(golden1)); - segs.push_back(QrSegment::makeAlphanumeric(golden2)); - const QrCode qr3 = QrCode::encodeSegments(segs, QrCode::Ecc::LOW); + const QrCode qr3 = QrCode::encodeSegments( + {QrSegment::makeBytes(bytes), QrSegment::makeNumeric(golden1), QrSegment::makeAlphanumeric(golden2)}, + QrCode::Ecc::LOW); printQr(qr3); // Illustration "Madoka": kanji, kana, Greek, Cyrillic, full-width Latin characters - const char *madoka = "\xE3\x80\x8C\xE9\xAD\x94\xE6\xB3\x95\xE5\xB0\x91\xE5\xA5\xB3\xE3\x81\xBE\xE3\x81\xA9\xE3\x81\x8B\xE2\x98\x86\xE3\x83\x9E\xE3\x82\xAE\xE3\x82\xAB\xE3\x80\x8D\xE3\x81\xA3\xE3\x81\xA6\xE3\x80\x81\xE3\x80\x80\xD0\x98\xD0\x90\xD0\x98\xE3\x80\x80\xEF\xBD\x84\xEF\xBD\x85\xEF\xBD\x93\xEF\xBD\x95\xE3\x80\x80\xCE\xBA\xCE\xB1\xEF\xBC\x9F"; + const char *madoka = // Encoded in UTF-8 + "\xE3\x80\x8C\xE9\xAD\x94\xE6\xB3\x95\xE5" + "\xB0\x91\xE5\xA5\xB3\xE3\x81\xBE\xE3\x81" + "\xA9\xE3\x81\x8B\xE2\x98\x86\xE3\x83\x9E" + "\xE3\x82\xAE\xE3\x82\xAB\xE3\x80\x8D\xE3" + "\x81\xA3\xE3\x81\xA6\xE3\x80\x81\xE3\x80" + "\x80\xD0\x98\xD0\x90\xD0\x98\xE3\x80\x80" + "\xEF\xBD\x84\xEF\xBD\x85\xEF\xBD\x93\xEF" + "\xBD\x95\xE3\x80\x80\xCE\xBA\xCE\xB1\xEF" + "\xBC\x9F"; const QrCode qr4 = QrCode::encodeText(madoka, QrCode::Ecc::LOW); printQr(qr4); @@ -151,9 +157,9 @@ static void doSegmentDemo() { qrcodegen::BitBuffer bb; for (int c : packedKanjiData) bb.appendBits(c, 13); - segs.clear(); - segs.push_back(QrSegment(QrSegment::Mode::KANJI, packedKanjiData.size(), bb)); - const QrCode qr5 = QrCode::encodeSegments(segs, QrCode::Ecc::LOW); + const QrCode qr5 = QrCode::encodeSegments( + {QrSegment(QrSegment::Mode::KANJI, packedKanjiData.size(), bb)}, + QrCode::Ecc::LOW); printQr(qr5); } diff --git a/java/io/nayuki/qrcodegen/QrCodeGeneratorDemo.java b/java/io/nayuki/qrcodegen/QrCodeGeneratorDemo.java index b0a59bd..84ace6f 100644 --- a/java/io/nayuki/qrcodegen/QrCodeGeneratorDemo.java +++ b/java/io/nayuki/qrcodegen/QrCodeGeneratorDemo.java @@ -152,7 +152,7 @@ public final class QrCodeGeneratorDemo { BitBuffer bb = new BitBuffer(); for (int c : packedKanjiData) bb.appendBits(c, 13); - segs = Arrays.asList(new QrSegment(QrSegment.Mode.KANJI, madoka.length(), bb)); + segs = Arrays.asList(new QrSegment(QrSegment.Mode.KANJI, packedKanjiData.length, bb)); qr = QrCode.encodeSegments(segs, QrCode.Ecc.LOW); writePng(qr.toImage(9, 4), "madoka-kanji-QR.png"); }