Artikelformat

QR-Codes erstellen

Seit ein paar Jahren gibt es die QR-Codes zu sehen. Mit der Verbreitung der Smartphones hat sich die Verbreitung stark erhöht und überall stößt man auf die Quadrate, die an durcheinander gewürfelte Schachbretter erinnern. Sehr beliebt sind diese Muster im Zusammenhang mit den vielen Android-Seiten.

Was ist der QR-Code eigentlich?

Der Begriff QR-Code steht für Quick Response Code und es handelt sich um einen 2-dimensionalen Code, der von Denso Wave im Jahre 1994 entwickelt wurde. Die Größe ist abhängig von der Datenmenge und von der Güte der Fehlerkorrektur. Die kleineren Quadrate werden von der Erkennungssoftware zur Bestimmung der Ausrichtung genutzt. Im Code selbst werden Daten transportiert. Smartphones haben die Software zur Erkennung schon installiert oder aber sie lässt sich im jeweiligen AppStore/Market finden. Ich persönlich nutze Google Goggles unter Android.

Welche Daten werden hinterlegt

QR-Codes findet man inzwischen an vielen Stellen, an denen man eine Brücke zwischen einem Offline- und einem Online-Medium schlagen möchte oder muss. Werbung in Zeitschriften bspw. verweist auf die entsprechende Internetseite des Herstellers. Es können aber auch Telefonnummern, vCards oder speziellere Daten hinterlegt werden. Wlan-Zugangsdaten werden u.a. gerne in einem QR-Code für die Gäste eines Cafes hinterlegt.
Die Erkennungssoftware ist normalerweise so programmiert, dass sie bestimmte Muster in den Daten erkennt und davon abhängig eine entsprechende Software startet. Solche Muster sehen bspw so aus:

Webseiten

  • https://www.phpmonkeys.de
  • market://details?id=com.google.android.apps.unveil

Email

Telefon

  • tel:012345678

Kontaktdaten (vCard)

QR-Codes generieren im Netz

Wie so ein Code aussieht ist rudimentär klar und welche Daten darin enthalten sein können haben wir auch gesehen. Jetzt geht es an die Generierung. Der einfachste Weg ist eine entsprechende Seite zu nutzen. Dies bietet sich vor allem dann an, wenn man nicht viele Codes benötigt oder wenn man die Generierung auslagern möchte.

Kaywa

Ein besonders einfaches Formular zum Erstellen solches Codes findet man bei Kaywa. Dies ist auch der Hersteller von entsprechender Software, die die Codes analysieren kann. Dort kann man ein paar Informationen angeben und schon wird ein QR-Code generiert. Einen statischen Link dazu gibt es auch. Besonders nett an dem Formular ist die Auswahl nach den verschiedenen Möglichkeit. Vorlagen für URL, Telefon und SMS sind bereits vorhanden und ein generelles Text-Eingabefeld gibt es auch noch. Leider gibt es aber einige Limitierungen und das Formular ist auch nur für die private Nutzung erlaubt. Für die ersten Tests reicht dies aber allemal aus.
Link: http://qrcode.kaywa.com/

Google Chart API

Möchte man QR-Codes dynamisch erzeugen so bietet Google eine entsprechende API an. Über den Generator für Charts kann man neben schönen Diagrammen auch die QR-Codes generieren. Hierbei muss man im Gegensatz zu kaywa aber wissen, welchen textlichen Inhalt man im Code unterbringen muss. Wie sieht ein Telefonnummer-QR-Code aus? Und dann ist die Google API ein gutes Stück interessanter.
Der Aufruf ist sehr überschaubar:

https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=Hello%20world

Die Parameter ergeben sich folgendermaßen:

  • chs: Die Größe des Codes im Format BreitexHöhe
  • cht: Hier steht qr, weil das eben der Typ ist
  • chl: Der Inhalt des QR-Codes in einem URL-Encoded Format

Netterweise kann man statt der GET-Syntax auch die Daten per POST übermitteln. Hierbei wird dann natürlich ein Formular oder eine Zwischenschicht benötigt, die die Daten per POST übermitteln kann. Zum Beispiel mit cURL auf der Kommandozeile oder natürlich mit PHP, wie man das Übermitteln von POST-Daten ja kennt.
Dadurch ist man auch in der Lage komplexere Daten in einem QR-Code unterzubringen und die Menge der Daten erhöht sich ebenfalls. Denn üblicherweise ist eine GET-Anfrage auf ca 2k beschränkt, POST hingegen kann 16k übermitteln. Unter dem angegebenen Link finden sich einige Beispiele für die Benutzung.
Link: http://code.google.com/intl/de-DE/apis/chart/infographics/

PHP QR Code Library

Die vorgestellten Methoden benutzen beiden den Service eines Dritten. Wer nun seine Codes selbst erstellen möchte, muss auf eine entsprechende Bibliothek zurückgreifen. Als Beispiel dient hier PHPQRCode. Um einen QR-Code zu generieren muss man nur qrlib inkludieren. Die Generierung geschieht dann über den Aufruf einer statischen Methode. Hierbei sind einige Parameter verfügbar. Beispielhaft sieht dies so aus:

require 'qrlib.php';
QRcode::png('https://www.phpmonkeys.de', 'code.png', QR_ECLEVEL_H, 10);

Die Daten werden als erster Parameter übergeben, dann folgt der Dateiname, die Fehlerkorrektur und die Größe. Fehlerkorrektur und Größe sind optional.

Fazit

Das eigentliche Geheimnis der QR-Codes liegt in den Daten und in der Formatierung dieser. Wenn eine Software ein spezielles Format unterstützt, so kann man viele Eingaben vereinfachen.
Eine kommende Alternative könnten die NFC-Tags sein. Diese Aufkleber lassen sich ebenso mit Daten befüllen. Jedoch sind QR-Codes sehr viel einfacher und günstiger herzustellen und können von jedem Gerät mit Kamera gelesen und ausgewertet werden.

Ergänzend für nk hier noch 4 Testdateien. Diese haben 1k bis 4k an Daten als Inhalt. Wobei als letztes Zeichen ein A angegeben ist und alle Zeichen zuvor eine 1 sind. Dadurch kann man einfach sicherstellen, dass alle Zeichen im QRCode vorhanden sind.

5 Kommentare

  1. Ich wollte demnächst mal probieren, wie gut das funktioniert, wenn man sie auf Dokumente (Rechnungen/E-Mails/Auftragsbestätigungen) usw. druckt und damit online verfügbar macht.

    Antworten
  2. Bissl konfus der Artikel. „Zum Beispiel cURL oder natürlich PHP“ z.B.
    Und was man in 16K für Sachen hinterlegen will ist mir auch einigermaßen schleierhaft. Ich bezweifle auch, dass QR solche Datenmengen zur Darstellung bringen kann.

    Antworten
    • Die Zeile habe ich angepasst, damit klar wird was ich meine. War in der Tat missverständlich. Ich werde im Laufe des Tages noch ein paar Beispiel QR-Codes anhängen, die mehr Daten als die übliche URL beinhalten können.
      Was man unterbringt, ist dir überlasse. Natürlich reden wir nicht von DVD-Isos sondern Daten, die man eben mal mit dem Handy auch verwerten kann. Die vCard ist für mich ein gutes Beispiel. Auf die Rückseite einer Visitenkarte gedruckt und der Empfänger muss nicht die Adressdaten von Hand reinfummeln. Und diese Information kann ja schon einige Zeichen umfassen. Dazu kannst du dir ja das RFC für vCards anschauen … übrigens ist das verlinkt.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.