QR-Code-Generator in C++ mit libqrencode und CQRcode

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

QR-Code-Generator in C++: Vollständige Anleitung



QR-Codes sind zu einem festen Bestandteil des modernen Webs und mobiler Anwendungen geworden. Sie werden für schnelle Link-Navigation, die Übertragung von Kontaktdaten, Zahlungen und Authentifizierung verwendet. Wenn Sie in C++ entwickeln und einen eingebauten QR-Code-Generator benötigen – ohne externe Dienste und APIs – ist dieser Artikel genau das Richtige für Sie. Wir behandeln zwei Hauptbibliotheken: libqrencode (niedrigschwellig, flexibel) und CQRcode (hochschwellig, mit PNG-Ausgabe).



Warum QR-Codes in C++ generieren?

Hauptanwendungsszenarien:

  • Offline-Generierung in Desktop-Anwendungen (Bestandsverwaltung, Tickets).
  • Integration in serverseitige C++-Lösungen (hohe Leistung).
  • Arbeit mit begrenzten Ressourcen (eingebettete Systeme, Mikrocontroller).
  • Volle Kontrolle über den Kodierungs- und Fehlerkorrekturprozess.


Die Bibliothek libqrencode

libqrencode ist die beliebteste C/C++-Bibliothek zur Erstellung von QR-Codes. Sie implementiert den Standard ISO/IEC 18004, unterstützt alle Versionen (1–40) und Fehlerkorrekturstufen (L, M, Q, H). Die Bibliothek ist kompakt, benötigt keine Abhängigkeiten und funktioniert unter Linux, macOS und Windows (über MinGW oder MSVC).



Installation

# Linux (Debian/Ubuntu)sudo apt install libqrencode-dev

# macOS (Homebrew)brew install libqrencode

# Windows (vcpkg)vcpkg install libqrencode


Beispiel zur Generierung eines QR-Codes in ein Byte-Array (Schwarz-Weiß-Bild)

#include <qrencode.h>#include <iostream>#include <vector>

int main() { // QR-Code für den String "https://pythonlib.ru" erstellen QRcode *qr = QRcode_encodeString("https://pythonlib.ru", 0, QR_ECLEVEL_M, QR_MODE_8, 1); if (!qr) { std::cerr << "Fehler beim Erstellen des QR-Codes"; return 1; }

int width = qr->width; std::cout << "QR-Code-Größe: " << width << "x" << width << "";

// Daten: qr->data — Byte-Array (0 oder 1) for (int y = 0; y < width; ++y) { for (int x = 0; x < width; ++x) { bool black = (qr->data[y * width + x] & 0x01); std::cout << (black ? "██" : " "); } std::cout << ""; }

QRcode_free(qr); return 0;}

Dieser Code gibt den QR-Code mit Zeichen in der Konsole aus. Für das Speichern als PNG oder BMP ist eine zusätzliche Verarbeitung erforderlich.



Die Bibliothek CQRcode

CQRcode ist ein Aufsatz auf libqrencode, der das Ergebnis sofort als PNG-Datei speichern kann. Ideal geeignet, wenn Sie eine fertige Grafikdatei ohne zusätzlichen Code benötigen. Unterstützt die Anpassung von Farbe, Modulgröße und das Hinzufügen eines zentralen Logos.



Installation

# Laden Sie die Quellen von GitHub herunter: https://github.com/rickyzhang82/CQRcode# Build mit CMake:mkdir build && cd buildcmake ..makesudo make install


Beispiel zum Speichern eines QR-Codes als PNG

#include <CQRcode.h>

int main() { // Generator-Objekt erstellen CQRcode qr; // Daten setzen (URL, Text oder vCard) qr.setData("BEGIN:VCARDVERSION:3.0FN:PythonLibURL:https://pythonlib.ruEND:VCARD"); // Parameter konfigurieren qr.setModuleSize(8); // Größe eines Moduls in Pixeln qr.setMargin(4); // Rand (weißer Rahmen) qr.setCorrectionLevel(QR_ECLEVEL_H); // maximale Fehlerkorrektur // In Datei speichern if (qr.savePNG("pythonlib_qr.png")) { // Erfolgreich } else { // Fehler } return 0;}


Vergleich der Bibliotheken

  • libqrencode — minimalistisch, liefert Rohdaten. Erfordert

Empfehlungen