From 5a2e3c537145d848b26f00d58de4bb1bf33a8a38 Mon Sep 17 00:00:00 2001 From: ADarkHero Date: Sun, 12 Apr 2015 22:12:57 +0200 Subject: [PATCH] Initial commit --- ergebnis.php | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++ index.php | 4 ++ test.png | Bin 0 -> 8019 bytes 3 files changed, 167 insertions(+) create mode 100644 ergebnis.php create mode 100644 index.php create mode 100644 test.png diff --git a/ergebnis.php b/ergebnis.php new file mode 100644 index 0000000..d06fcfe --- /dev/null +++ b/ergebnis.php @@ -0,0 +1,163 @@ + Alle Zeichen durchgehen + if(substr($zeichen, $i, 1) == 0){ //Zeichen auslesen -> Ist es 0? + echo ''; + } + else{ //Oder 1? + echo ''; + } + } + } + + + function bild_zeichnen($zeichen, $position, $bild){ //Funktion, um den Code als Bild auszugeben + $weiss = imagecolorallocate($bild, 255, 255, 255); //Weisse Striche + $schwarz = imagecolorallocate($bild, 0, 0, 0); //Schwarze Striche + + for($i = 0; $i < strlen($zeichen); $i++){ //Mehrere Zeichen werden übermittelt -> Alle Zeichen durchgehen + $strichpos = $position + 3; //Striche sind 3px breit + if(substr($zeichen, $i, 1) == 0){ //Zeichen auslesen -> Ist es 0? + imagefilledrectangle($bild, $position, 0, $strichpos, 100, $weiss); + } + else{ //Oder 1? + imagefilledrectangle($bild, $position, 0, $strichpos, 100, $schwarz); + } + + $position += 3; + } + return $position; + } + + + + function trennstriche(){ //Für Trennstriche zwischen Tabellen + echo ''; + echo ''; + echo ''; //2 Trennstriche + echo '
'; + echo ''; + } + + + function trennstriche_zeichnen($position, $bild){ //Für Trennstriche beim Bild + $schwarz = imagecolorallocate($bild, 0, 0, 0); //Schwarze Striche + $position += 3; //Abstand nach Trennlinien + $strichpos = $position + 3; //Striche sind 3px breit + + imagefilledrectangle($bild, $position, 0, $strichpos, 125, $schwarz); + $position += 6; + $strichpos = $position + 3; + + imagefilledrectangle($bild, $position, 0, $strichpos, 125, $schwarz); + $position += 6; + + return $position; + } + + + + + + + + + + + $code = $_POST["code"]; //Eingegebener Code + + $musterA = array(0 => "0001101",1 => "0011001",2 => "0010011",3 => "0111101",4 => "0100011",5 => "0110001",6 => "0101111",7 => "0111011",8 => "0110111",9 => "0001011"); + $musterB = array(0 => "0100111",1 => "0110011",2 => "0011011",3 => "0100001",4 => "0011101",5 => "0111001",6 => "0000101",7 => "0010001",8 => "0001001",9 => "0010111"); + $musterC = array(0 => "1110010",1 => "1100110",2 => "1101100",3 => "1000010",4 => "1011100",5 => "1001110",6 => "1010000",7 => "1000100",8 => "1001000",9 => "1110100"); + + $zeichensatz = array(0 => "AAAAAA",1 => "AABABB",2 => "AABBAB",3 => "AABBBA",4 => "ABAABB",5 => "ABBAAB",6 => "ABBBAA",7 => "ABABAB",8 => "ABABBA",9 => "ABBABA"); + + while(strlen($code) < 12){ //Es werden 12 Zeichen benötigt + $code = "0".$code; + } + + $teilA = substr($code, 0, 1); //Nach 1. Zeichen Teilen + $teilB = substr($code, 1, 5); //Zeichen 2-7 + $teilC = substr($code, 7, 5); //Zeichen 7-12 + $komplett = substr($code, 0, 12); //Alle Zeichen als Array + + for($i = 0, $ergebnis = 0; $i < 12; $i++){ //D wird generiert + if($i%2 != 0){ //Jede 1. Stelle mal 1 - Jede 2. Stelle mal 3 -> Ergebnisse addieren + $ergebnis += $komplett[$i] * 1; + } + else{ + $ergebnis += $komplett[$i] * 3; + } + } + + $teilD = 10 - substr($ergebnis, -1); //Prüfziffer -> 10 minus der letzten Zahl des Ergebnisses der Schleife + + $teilC = $teilC.$teilD; //C und D werden verbunden -> selbe codierung + + + $codierung = $zeichensatz[$teilA].split(""); //Codierung als Array (Jeder Buchstabe mit anderem Index) + $b = $teilB.split(""); //Teil B als Array + $c = $teilC.split(""); //Teil C als Array + + + trennstriche(); + for($i = 0; $i < 5; $i++){ //EAN generieren + if($codierung[$i] == "A"){ //Tabelle A + zeichen($musterA[$b[$i]]); + } + else{ //Tabelle B + zeichen($musterB[$b[$i]]); + } + } + + trennstriche(); + + for($i = 0; $i < 5; $i++){ + zeichen($musterC[$c[$i]]); //Tabelle C + } + + trennstriche(); + echo "
"; + + + + + //Generierung als Bild + $breite = 500; + $hoehe = 125; + + $bild = imagecreatetruecolor($breite, $hoehe); //Neues Bild erzeugen (500x125) + + $weiss = imagecolorallocate($bild, 255, 255, 255); //Farben des Bildes + imagefill($bild, 0, 0, $weiss); //Hintergrund des Bildes + $position = 0; + + $position = trennstriche_zeichnen($position, $bild); //Trennstriche + for($i = 0; $i < 5; $i++){ //EAN generieren + if($codierung[$i] == "A"){ //Tabelle A + $position = bild_zeichnen($musterA[$b[$i]], $position, $bild); + } + else{ //Tabelle B + $position = bild_zeichnen($musterB[$b[$i]], $position, $bild); + } + } + + $position = trennstriche_zeichnen($position, $bild); //Trennstriche + + for($i = 0; $i < 5; $i++){ //Tabelle C + $position = bild_zeichnen($musterC[$c[$i]], $position, $bild); + } + + $position = trennstriche_zeichnen($position, $bild); //Trennstriche + + + imagejpeg($bild, "test.png"); +?> + +

+ + + + diff --git a/index.php b/index.php new file mode 100644 index 0000000..4cecd26 --- /dev/null +++ b/index.php @@ -0,0 +1,4 @@ +
+ Zahl
+ +
\ No newline at end of file diff --git a/test.png b/test.png new file mode 100644 index 0000000000000000000000000000000000000000..403c04fc23a20ead35bc94fe2d54f5752ec5c72d GIT binary patch literal 8019 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 NElYk)Gm@~*e*s-nMxy`# literal 0 HcmV?d00001