QR-Code

QR codes (short for “Quick response” code) are a type of 2D barcode made up of a square grid of dark and light boxes and three prominent squares at top-left, top-right, and bottom-left corners.

QR-Codes werden im Einzelhandel, in der Logistik, in der Verbraucherwerbung und im Flugticketbereich eingesetzt. Sie können viele Informationen auf kleinem Raum speichern – von Produktinformationen bis hin zu einer Website-URL – und verfügen über robuste Fehlerkorrekturmöglichkeiten, die die Lesbarkeit auch dann gewährleisten, wenn ein Teil des Barcodes verdeckt oder beschädigt ist.

Dieser Leitfaden bietet Softwareentwicklern die Informationen, die sie benötigen, um Anwendungen zu erstellen, die QR-Codes erstellen oder dekodieren.

Was ist ein QR-Code?

Ein QR-Code ist ein zweidimensionaler Barcode, der eine große Datenmenge auf kleinem Raum speichert. Er kodiert Daten in einem quadratischen Raster aus dunklen und hellen Feldern und kann aus jeder Ausrichtung (links, rechts, oben oder unten) gelesen werden.

QR-Codes sind eine grafische Darstellung maschinenlesbarer Daten, bekannt als Datenträger. Die im Träger enthaltenen Daten werden als Datenstruktur bezeichnet, die in verschiedenen Formaten kodiert ist und bestimmt, wie die Nutzlast nach der Dekodierung zu analysieren ist. QR-Codes unterstützen alphanumerische, numerische, 8-Bit-binäre und Kanji-Zeichensätze.

QR-Codes wurden 1994 von Masahiro Hara von DENSO Wave erfunden, um Teile zu verfolgen, die für die Automobilproduktion verwendet wurden. Es gab seitdem mehrere Aktualisierungen der QR-Code-Standard since then. This guide focuses on the widely deployed “Model 2” QR Code standardized in ISO/IEC 18004:2024.

Probieren Sie das Scandit Barcode-Scanner-SDK aus

Bewerten Sie unsere QR-Code-Dekodierung mit einer kostenlosen 30-Tage-Testversion

Kostenlos testen

Wie ein QR-Code funktioniert

Ein QR-Code enthält diese Komponenten:

  • Suchmuster: Drei große Quadrate in den Ecken oben links, oben rechts und unten links, um die Position und Ausrichtung des Symbols zu bestimmen.
  • Timing-Muster: Gepunktete Linien zwischen den Suchermustern, die den Scannern helfen, die Struktur und Ausrichtung der Datenmodule des Symbols zu bestimmen.
  • Ausrichtungsmuster: Kleine Quadrate, die Scanner verwenden, um Bildverzerrungen zu korrigieren.
  • Formatinformationen: Streifen aus Quadraten, die Details über den Fehlerkorrekturgrad und das verwendete Maskierungsmuster im Code enthalten.
  • Versionsinformationen: Blöcke, die die Abmessungen und Fähigkeiten des Symbols definieren, werden nur für QR-Code-Versionen 7 und höher verwendet.
  • Datenmodule: Das Gitter aus schwarzen und weißen Quadraten, in dem die Informationen des Symbols gespeichert sind.
  • Ruhezone: Der Rahmen um den Code, der ihn vom Hintergrund abhebt.

Was sind die QR-Code-Versionen?

QR-Code-Versionen reichen von 1 bis 40, jede mit einer unterschiedlichen Anzahl von Datenmodulen, die die Datenkapazität und physische Größe bestimmen.

Die Anzahl der Module erhöht sich bei jeder Versionserhöhung um vier auf jeder Seite. Version 1 hat 21x21 Module und Version 40 hat 177x177 Module.

Was sind die QR-Code-Typen?

QR-Code-Typen werden nach Datenkapazität, physischen Eigenschaften und Funktionen kategorisiert. Die folgende Tabelle erklärt die Unterschiede zwischen ihnen:

QR-Code-Typ

Physische Eigenschaften

Maximale Datenkapazität (numerische Zeichen)

QR-Code-Modell 1

Der originale QR-Code, definiert durch ein quadratisches Raster mit markanten Suchermustern.

1,167
(Version 14, 73x73 Module)

QR-Code-Modell 2

Ähnlich wie Modell 1, jedoch mit einem zusätzlichen Ausrichtungsmuster, das Scannern ein reibungsloses Lesen ermöglicht, selbst wenn das Symbol verzerrt ist.

7,089
(Version 40, 177x177 Module)

Micro QR Code

Enthält nur ein Positionserkennungsmuster und verfügt über eine kleinere Ruhezone, wodurch kleinere Symbolgrößen möglich sind.

35
(Version M4, 17x17 Module)

Rechteckiger Micro-QR-Code (rMQR)

Verwendet eine rechteckige Form, die eine einfache Anwendung in engen Räumen ermöglicht.

361
(Version 32, 17x139)

Geheimfunktion ausgestatteter QR-Code (SQRC)

Ähnlich wie Modell 1/Modell 2, jedoch werden die Daten zwischen öffentlichen und verschlüsselten Bereichen aufgeteilt, um die Sicherheit zu verbessern.

7,089
(Version 40, 177x177 Module)

FrameQR

Ähnlich wie Modell 1/Modell 2, enthält jedoch einen Canvas-Bereich zum Einfügen von Bildern. Definiert durch die proprietäre Technologie von DENSO Wave, kein offener Standard wie ISO.

7,089
(Version 40, 177x177 Module)

iQR Code

Ähnlich wie Modell 2 und unterstützt sowohl quadratische als auch rechteckige Formen. Durch die proprietäre Technologie von DENSO Wave definiert, kein offener Standard wie ISO.

40,000
(Version 61, 422x422 Module)

Was ist der Unterschied zwischen statischen und dynamischen QR-Codes?

Die in statischen QR-Codes kodierten Daten können nach ihrer Erstellung nicht mehr geändert werden, während dynamische QR-Codes es Unternehmen ermöglichen, das Scan-Ziel auch nach der Erstellung und dem Druck der Codes zu ändern.

Statische QR-Codes

Einmal gedruckt oder verteilt, sind die in einem statischen QR-Code kodierten Daten dauerhaft. Wenn sich die Ziel-URL oder der Inhalt ändert, muss ein neuer Code erstellt werden. Statische Codes werden häufig für feste Referenzen wie Seriennummern, WLAN-Zugangsdaten oder einmalige Marketingkampagnen verwendet.

Dynamische QR-Codes

Ein dynamischer QR-Code kodiert eine kurze URL, die zu einem Weiterleitungsdienst führt. Wenn ein Benutzer den Code scannt, löst der Scanner die kurze URL auf und leitet zur aktuellen Zieladresse weiter. Diese Indirektion ermöglicht zwei Funktionen:

  • Bearbeitbarkeit: Die Zielseite oder Funktion hinter dem QR-Code kann aktualisiert werden, ohne das Symbol neu zu drucken, was sie für langfristige Kampagnen oder das Asset-Management nützlich macht.
  • Analysen: Da jeder Scan über einen Weiterleitungsdienst läuft, können Benutzer Scan-Statistiken wie Anzahl, Zeitstempel, Geolokalisierung und Gerätebetriebssystem erfassen. Diese Kennzahlen helfen dabei, das Engagement zu messen oder die Nutzung zu überwachen.

Wie viele Daten kann ein QR-Code speichern?

Die Datenmenge eines QR-Codes hängt mit seiner Version zusammen. Jede Version hat eine maximale Kapazität, die von der Datenmenge, dem Zeichentyp und dem verwendeten Fehlerkorrekturlevel abhängt.

Die folgende Tabelle, angepasst aus dem DENSO Wave QR-Code-Website, zeigt die Speichergrößen für ausgewählte Model-2-Versionen auf dem niedrigsten Fehlerkorrekturlevel (L, mit einer ungefähren Datenwiederherstellungsrate von 7 %):

Version

Maximale Zeichen (alphanumerisch)

Maximale Zeichen (numerisch)

Maximale Zeichen (8-Bit-Binär)

Maximale Zeichen (Kanji)

Modulgröße

1

25

41

17

10

21x21

20

1,249

2,061

858

528

97x97

30

2,520

4,158

1,732

1,066

137x137

40

4,296

7,089

2,953

1,817

177x177

Wie werden Daten in einem QR-Code-Symbol kodiert?

QR-Codes unterstützen vier Kodierungsschemata:

  • Alphanumerisch: Dezimalziffern 0 bis 9, Großbuchstaben, die Symbole $, %, *, +, -, ., /, und :, sowie das Leerzeichen.
  • Numerisch: Dezimalziffern 0 bis 9.
  • 8-Bit-Binär: Charaktere aus dem ISO-8859-1 Zeichensatz.
  • Kanji: Doppelbyte-Zeichen aus dem Shift-JIS-Zeichensatz.

Es ist möglich, mehrere Kodierungsschemas innerhalb desselben QR-Codes zu verwenden, indem das Modusflag vor jedem Datenabschnitt gesetzt wird, der durch dieses Schema kodiert wird.

QR-Codes umfassen auch verschiedene Funktionen, sogenannte Modi, die während der Kodierung festgelegt werden:

  • Erweiterte Kanalinterpretation (ECI): ermöglicht es Benutzern, Daten mit internationalen Unicode-Zeichensätzen zu kodieren, die nicht dem ISO-8859-1-Standard entsprechen.
  • Strukturierter Anhang: Ermöglicht die Aufteilung von Daten in maximal 16 separate, aber logisch verknüpfte QR-Code-Symbole.
  • FNC1: Ermöglicht dem QR-Code, als GS1-Barcode zu fungieren, der durch den GS1 Digital Link-Standarddefiniert ist. Die Einzelhandels-, Lager- und Lieferkettenindustrie nutzt dies häufig zur Kodierung von URLs.

Die GS1-Kodierung muss beim Generieren eines QR-Codes aktiviert werden, und es liegt in der Verantwortung des Barcode-Lesers, GS1-Daten zu identifizieren und zu dekodieren.

Der QR-Code auf der rechten Seite enthält die Datenzeichenkette JQ3013456789012345611210714. Diese gliedert sich in folgende Komponenten auf:

  • JQ3: Function-1-Symbolzeichen (FNC1), das diesen als GS1-QR-Code kennzeichnet.
  • 01 34567890123456: Anwendungsidentifikator (AI), der dies als Global Trade Identification Number (GTIN) definiert, sowie die GTIN des Produkts.
  • 11 210714: Anwendungsidentifikator (AI), der dies als Produktionsdatum definiert, sowie das Datum im Format JJMMTT.

QR-Code-Fehlerkorrektur

QR-Codes verwenden die Reed-Solomon-Fehlerkorrekturmethode. Dieser Ansatz wandelt die ursprünglichen Daten in ein Polynom um, um einen eindeutigen Satz von Punkten zu definieren, die dann in das Symbol eingebettet werden. Das Ergebnis ist ein Symbol, das die ursprünglichen Daten sowie einen Polynomausdruck enthält, den Scanner verwenden können, um den QR-Code wiederherzustellen.

Es gibt vier Stufen der Fehlerkorrektur in einem QR-Code:

  • L: 7 % der Daten können wiederhergestellt werden.
  • M: 15 % der Daten können wiederhergestellt werden.
  • Q: 25 % der Daten können wiederhergestellt werden.
  • H: 30 % der Daten können wiederhergestellt werden.

Höhere Fehlerkorrekturgrade erfordern mehr Datenkapazität und physischen Platz.

Wo wird ein QR-Code verwendet?

QR-Codes sind vielseitige Datenträger, die von vielen Branchen übernommen wurden, weil sie schnell zu scannen, anpassungsfähig bei Verzerrungen und in der Lage sind, sowohl strukturierte als auch freiformatierte Nutzdaten zu tragen.

Anwendungsbeispiele umfassen:

  • Fertigung: Auf Teilen, Verpackungen oder Geräten aufgedruckt, um Produkt-IDs, Seriennummern oder Chargen- und Losinformationen zu kodieren.
  • Ticketing: Wird für Veranstaltungstickets, Bordkarten oder Zugangskontrolldaten verwendet, die an Eingangspunkten schnell validiert werden können.
  • Marketing: In Printanzeigen, Beschilderungen, Visitenkarten oder Produktverpackungen platziert, um Nutzer direkt mit Landingpages, Aktionen oder App-Downloads zu verbinden.
  • Logistik: An Kartons, Paletten oder Versandetiketten angebracht, um die Nachverfolgung zu optimieren, die Rückverfolgbarkeit zu verbessern und Sendungen mit Lieferkettensystemen zu verknüpfen.

Was macht den QR-Code einzigartig?

Der größte Vorteil von QR-Codes ist ihre Balance aus Datenkapazität, Scan-Robustheit und Funktionsflexibilität. Sie lassen sich aus der Distanz oder in schrägen Winkeln einfach erfassen, kodieren verschiedene Datentypen in einem kompakten Format und werden von Verbrauchergeräten weithin erkannt.

Wesentliche Vorteile von QR-Codes gegenüber anderen Barcode-Typen

  • Von jeder Richtung lesbar, sodass Benutzer Artikel in unterschiedlichen Ausrichtungen relativ zu ihrem Gerät scannen können.
  • Im Vergleich zu 1D-Barcodes können QR-Codes mehr Daten speichern (Tausende von Zeichen gegenüber einem Dutzend Ziffern) und sind dank integrierter Fehlerkorrektur selbst dann noch scan-fähig, wenn ein Teil des Codes beschädigt ist. Ihr quadratisches Format ist zudem platzsparender, was den Platzbedarf des Etiketts reduziert und gleichzeitig variable Datenlängen unterstützt.
  • Im Vergleich zu Data-Matrix-Codesverfügen QR-Codes über stärkere Suchmuster (drei große Eckquadrate) und Ausrichtungsmerkmale, die die Scan-Robustheit verbessern, wenn Symbole verzerrt oder aus großen Entfernungen erfasst werden. Sie unterstützen außerdem Mehrbyte-Zeichensätze wie Kanji, was Data Matrix nativ nicht unterstützt. Der Nachteil ist, dass ein QR-Code mehr physischen Platz benötigt, um dieselbe Datenmenge zu speichern.
  • Fehlerkorrekturflexibilität: QR-Codes ermöglichen die Auswahl von vier Fehlerkorrekturebenen (L, M, Q, H), sodass Benutzer zwischen Datenkapazität und Widerstandsfähigkeit abwägen können.
  • Normkonformität: QR-Codes werden von GS1 für Lieferketten- und Einzelhandelsanwendungen unterstützt, wobei FNC1 und Anwendungsidentifikatoren strukturierte Handelsartikeldaten ermöglichen.

Wie erstellt man einen QR-Code

Die Erstellung eines QR-Codes ist ein Prozess der Kodierung von Informationen in die Matrix aus dunklen und hellen Modulen, die durch den QR-Code-Standard definiert ist. Auf hoher Ebene umfasst dies die Entscheidung, welche Daten kodiert werden sollen, die Wahl des richtigen Kodierungsschemas für die jeweilige Branche und den Anwendungsfall, die Anwendung der Fehlerkorrekturkodierung und die Darstellung des grafischen Symbols mit geeigneten Ruhezonen, damit es zuverlässig gescannt werden kann.

Es gibt mehrere Möglichkeiten, einen QR-Code zu erstellen. Dazu gehören kostenlose Online-Generatoren, die Verwendung einer vorhandenen Bibliothek wie qrcode für Pythonund das Erstellen eines eigenen Generators.

Wie scannt man einen QR-Code

QR-Codes werden mit kamerabasierten Mobilgeräten gescannt, auf denen Software zur Dekodierung der Symbologie ausgeführt wird.

Scandits Barcode-Scan-Software unterstützt QR-Codes und über 35 weitere Symbologien, einschließlich dieser Funktionen:

  • Beschleunigte Identifizierung und Dekodierung von QR-Codes unter schlechten Umgebungsbedingungen, großen Entfernungen und nichtlinearen Verzerrungen.
  • Gleichzeitige Datenextraktion aus mehreren QR-Codes im Sichtfeld mit MatrixScan.
  • Unterstützung für GS1-QR-Codes und eine GS1-Parser-API , um Datenkomponenten in verwendbare Formate zu übersetzen.

Wie dekodiert man einen QR-Code

Wenn Sie eine eigene Dekodierungsmethode für QR-Codes entwickeln, sind die allgemeinen Schritte wie folgt.

Voraussetzungen

Das Bild des QR-Codes wird erfasst und mit einer Auflösung gespeichert, die hoch genug ist, um seine Komponenten zu unterscheiden.

Dekodierungsschritte

  1. Konvertieren Sie das Bild mithilfe von Schwellenwertbildung in eine binäre Darstellung, bei der Pixel auf einen Maximal- oder Minimalwert gesetzt werden (normalerweise 255 für Weiß und 0 für Schwarz), je nachdem, ob das entsprechende Bildsegment über oder unter einem bestimmten Schwellenwert liegt.
  2. Identifizieren Sie das Suchmuster und die Ruhezone des erfassten Bildes, um das QR-Code-Symbol vom Hintergrund zu unterscheiden.
  3. Schätzen Sie etwaige perspektivische Verzerrungen durch Untersuchung des Ausrichtungsmusters.
  4. Bestimmen Sie den Kodierungsmodus (alphanumerisch, numerisch, 8-Bit-Binär, Kanji, ECI) durch Untersuchung der Formatinformationen.
  5. Lesen Sie die Bits aus dem Datengitter, das von unten rechts nach unten links gelesen wird, einem Hin-und-her-Pfad durch jede Spalte folgend.
  6. Dekodieren Sie Symbole aus den Bits und wenden Sie die Fehlerkorrekturmethode (Reed-Solomon) an.
  7. Übersetzen Sie den Datenstrom mithilfe eines von Ihrer App verstandenen Kodierungsschemas. Wenn das Schema des QR-Codes unbekannt ist, haben Sie zwei Möglichkeiten:
  8. Senden Sie die Rohdaten an die App.
  9. Konvertieren Sie die Daten in ein von der Anwendung verwendetes Format, beispielsweise UTF-8.
  10. Senden Sie die Ergebnisse zur weiteren Verarbeitung oder Anzeige an die Anwendung.

Das Scandit Barcode Scanner SDK implementiert diesen Prozess für Sie und bietet zusätzliche Funktionen für reale QR-Code-Anwendungsfälle.

Das Hinzufügen von QR-Code-Scanning zu Ihrer App erfordert nach der Einrichtung der Scandit-Software nur zwei Schritte. Die folgenden Anweisungen basieren auf der "Barcode Capture Simple Sample" -Anwendung für das Scandit JavaScript Barcode Scanner SDK:

1. Aktivieren Sie die erforderlichen Symbologien, einschließlich QR-Codes

settings.enableSymbologies([
    Symbology.QR,
    Symbology.DataMatrix,
    Symbology.UPCE,
  ]);

2. Nachdem ein Barcode von der Scandit-Bibliothek dekodiert und erkannt wurde, rufen Sie seine Daten ab, indem Sie die Scandit-Listener-Schnittstelle implementieren

barcodeCapture.addListener({
    didScan: async (barcodeCaptureMode: BarcodeCapture, session: BarcodeCaptureSession) => {
      // Disable the mode to avoid unwanted scan until the user closes the displayed result.
      await barcodeCapture.setEnabled(false);
      // Hide the viewfinder.
      await barcodeCaptureOverlay.setViewfinder(null);
      const barcode: Barcode | null = session.newlyRecognizedBarcode;
      if (!barcode) {
        return;
      }
      const symbology: SymbologyDescription = new SymbologyDescription(barcode.symbology);
      showResult(`Scanned: ${barcode.data ?? ""}\n(${symbology.readableName})`);
    },
  });

Hier extrahiert die Methode:

  • barcode.symbology - Barcode-Symbologie als Aufzählung.
  • barcode.data - Barcode-Daten als UTF-8-Zeichenkette.
  • symbology.readableName - Menschenlesbarer Name der Symbologie.

Wie Scandit QR-Codes unterstützt

Das Scandit Barcode-Scanner-SDK erfüllt die Anforderungen von Entwicklern in der Praxis, einschließlich dieser speziell auf QR-Codes ausgerichteten Funktionen:

  • Explizite GS1-QR-Code-Unterstützung mit FNC1-Verarbeitung und AI-Parsing.
  • Normalisierung aller Kodierungsschemata auf UTF-8, sofern die Daten konvertierbar sind, oder Zugriff auf die Rohdaten.
  • Eine GS1 Parser API zum Normalisieren und Extrahieren von Elementzeichenketten in ein menschenlesbares Format, ohne sich um Kodierung oder Trennzeichen kümmern zu müssen. Dies umfasst Abstimmungsoptionen, wie die strikte Einhaltung des GS1-Standards und das Überschreiben der Länge der Anwendungsidentifikator-Zeichenkette.
  • Aktivieren und Deaktivieren unterstützter Symbologien, einschließlich Branchen-Voreinstellungen, zur Verbesserung der Scan-Leistung.
  • Strukturiertes Anhängen Unterstützung zum Extrahieren von Daten aus mehreren Symbolen. Mit MatrixScan werden dabei Daten von mehreren Etiketten im Sichtfeld der Kamera gleichzeitig zurückgegeben.

Scandit's Software unterstützt alle gängigen Betriebssysteme, Programmiersprachen, Frameworks, Drittanbietersysteme und OEM-Geräte, einschließlich natives iOS, natives Android, web/Javascript, React Native, Cordova, Flutter, Kotlin Multiplatform, .NET, Kondensator, Titan, und Linux/C.

“We evaluated the reading accuracy of Scandit. Barcodes attached to fruits and vegetables are not always flat and can be curved. Scandit can accurately read such barcodes. During the review stage, we compared other scanning engines, but Scandit was overwhelmingly superior in terms of reading accuracy.”

Probieren Sie das Scandit Barcode-Scanner-SDK aus

Bewerten Sie unsere QR-Code-Dekodierung mit einer kostenlosen 30-Tage-Testversion

Häufig gestellte Fragen


Loading search...

Please wait a moment