<?php

/**
 * Example 008 - Use structured append and dump the created codes
 *
 * "Structured append" enables you to distribute content over multiple QR Codes
 * (up to 16 ones). Information stored in multiple QR Codes can be reconstructed
 * as single data set, the scanning sequence doesn't matter.
 *
 * ATTENTION: Most mobile phone QR Code readers do not support "stuctured append"
 *
 * NOTE: "QR Code" is registered trademarks of DENSO WAVE INCORPORATED in Japan
 *       and other countries.
 *
 *
 * <b>de: Beispiel 008 - Nutzung von "stuctured append" und Speichern der
 *    erstellten Codes</b>
 *
 * "Stuctured append" gibt Ihnen die Möglichkeit den Inhalt auf mehrere QR-Codes
 * zu verteilen (bis zu 16 Stück). Die in mehreren QR-Codes gespeicherten
 * Informationen werden dabei als zusammenhängender Datensatz zurückgegeben, die
 * Scanning-Reihenfolge ist dabei unwichtig.
 *
 * HINWEIS: "QR Code" ist eine von DENSO WAVE INCORPORATED in Japan und anderen
 *          Ländern eingetragene Marke.
 *
 *
 * PHP version 5
 *
 * LICENSE: This file is NOT free software. Try to contact the author(s) in
 *          doubt. Copyright injuries will be prosecuted!
 *
 * @copyright 2008-2010, EVERESTAH Ltd. & Co. KG
 * @link http://www.wikipedia.org/wiki/QR_Code
 * @link http://qrserver.com
 * @link http://goQR.me
 * @link http://www.bctester.de Free Barcode Reader for MS Windows
 * @link http://www.i-nigma.mobi Free QR Code Reader for mobile phones
 * @link http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=43655
 * @link http://www.denso-wave.com/qrcode/aboutqr-e.html
 */

//show source in very case (we won't file dumps within our example dir)
header("Content-Type: text/html; charset=UTF-8");
highlight_file(__FILE__);
die();



//en: Import the required class
//de: Importieren der benötigten Klasse
require_once "./class.qrcode_create.inc.php";

//en: Create object
//de: Objekt erstellen
$qr = new qrcode_create();


//en: Set input which will be written into the QR Code
//de: Setzen den Inhalts, welcher in den QR Code geschrieben werden soll.
$qr->setInput("Hello World! I am a text divided into several QR Codes using"
             
."structured append. Cool feature, isn't it? Example 123456789 "
             
."Example 123456789 Example 123456789 Example 123456789");


//en: Set the edge length to 350 pixels
//de: Setzen der Kantenlänge auf 350 Pixel
$qr->setEdgeLength(350);




//en: Hint: Whenever qrcode_create::create() is called, the currently set data,
//          color and stuff will be used to store the QR Code in memory
//          (overwriting eventually older ones). Therefore, it is very easy
//          to change the data and call qrcode_create::create() again
//          to get a new QR Code, without having to work with multiple objects.
//de: Tipp: Wann immer qrcode_create::create() aufgerufen wird, werden die
//          aktuell gesetzten Daten, Farben etc. dazu verwendet, den QR Code im
//          Speicher abzulegen (ein ggf. vorher erstellter Code wird dabei
//          überschrieben). Daher ist es ohne Weiteres möglich, Daten zu
//          ändern und anschließend einfach nochmals qrcode_create::create()
//          aufzurufen, um einen anderen QR Code zu erhalten, ohne mit mehreren
//          Objekten arbeiten zu müssen.


//en: Saving the text with four QR Codes. The actual text is automatically splitted
//    as evenly as possible on various Codes.
//    The script needs write permissions on the defined path.
//de: Speichern des Textes in vier QR Codes. Der vorhandene Text wird dabei
//    automatisch möglichst gleichmäßig auf die verschiedenen Grafiken verteilt.
//    Das Skript benötigt natürlich Schreibrechte auf dem angegeben Pfad.
$qr->create(14);
$qr->img_dump("./1_of_4.png");

$qr->create(24);
$qr->img_dump("./2_of_4.png");

$qr->create(34);
$qr->img_dump("./2_of_4.png");

$qr->create(44);
$qr->img_dump("./2_of_4.png");

//en: Saving the text. This time with two QR Codes. As you can the, there is no need
//    to create new objects. The script needs write permissions on the defined path.
//de: Speichern des selben Textes, diesesmal in zwei QR Codes. Wie man sieht
//    braucht man kein neues Object zu erstellen. Das Skript benötigt natürlich
//    Schreibrechte auf dem angegeben Pfad.
$qr->create(12);
$qr->img_dump("./1of2.png");

$qr->create(22);
$qr->img_dump("./2of2.png");





//en: Saving the same text. This time with three QR Codes. Two Codes with yellow
//    background, the last one with red background. Previously generated codes are
//    not affected.
//de: Speichern des selben Textes, diesesmal in drei QR Codes. Zwei davon mit
//    gelben Hintergrund, den letzten mit rotem Hintergrund. Die bisher
//    erstellten Codes werden dadurch nicht beeinflusst.


//en: Set the color "yellow" for the background as RGB value
//    -> http://en.wikipedia.org/wiki/RGB_color_model
//de: Setzen der Farbe "gelb" für den Hintergrund als RGB-Wert
//    -> http://de.wikipedia.org/wiki/RGB-Farbraum
$qr->setBgColor(//red
                
255,
                
//green
                
255,
                
//blue
                
0);
$qr->create(13);
$qr->img_dump("./1of3_yellow.png");

$qr->create(23);
$qr->img_dump("./2of3_yellow.png");

//en: Set the color "red" for the background as RGB value
//    -> http://en.wikipedia.org/wiki/RGB_color_model
//de: Setzen der Farbe "rot" für den Hintergrund als RGB-Wert
//    -> http://de.wikipedia.org/wiki/RGB-Farbraum
$qr->setBgColor(//red
                
255,
                
//green
                
0,
                
//blue
                
0);
$qr->create(33);
$qr->img_dump("./3of3_red.png");

?>