"; $aktfile = "/hsphere/local/home/umwelt/cug.umweltnetz.ch/bildchen/farb10/farbdaten.txt"; if (file_exists($aktfile)) { if ($datei = fopen ($aktfile, "r")) { $xx=0; while (!feof ($datei)) { $zeile = fgetcsv ($datei, 100); $xx=$xx+1; $werte[$xx][0] = $zeile[0]; //mittelfarb $werte[$xx][1] = $zeile[1]; //r $werte[$xx][2] = $zeile[2]; //g $werte[$xx][3] = $zeile[3]; //b $werte[$xx][4] = $zeile[4]; //filenam } fclose ($datei); $farbmax = $xx; } } else { echo "Datei $aktfile nicht vorhanden"; } //echo $farbmax." Farben
"; //flush(); for ($iijj=1;$iijj<=10;$iijj++) { // mehrere Grafiken $hraster = 23; $vraster = 16; //matrix mit leerzeichen füllen for ($mm=1;$mm<=$hraster;$mm++) { for ($nn=1;$nn<=$vraster;$nn++) { $punkte[$mm][$nn] = 0; } //ende nn } //ende mm //fiktiver mittelpunkt $hmittel = round(mt_rand(1,$hraster),0); $vmittel = round(mt_rand(1,$vraster),0); $anzleer = 2; for ($ii=1;$ii<=$anzleer;$ii++) { $hleer = $hraster; $vleer = round(mt_rand(1,$vraster),0); $punkte[$hleer][$vleer] = -1; } //abstandsberechnungen zum fiktiven mittelpunkt $maxabst=0; $maxh=0; $maxv=0; for ($mm=1;$mm<=$hraster;$mm++) { for ($nn=1;$nn<=$vraster;$nn++) { if ($punkte[$mm][$nn] != -1) { $abstand =sqrt(pow(($hmittel-$mm),2)+pow(($vmittel-$nn),2)); $punkte[$mm][$nn] = $abstand; if ($abstand>$maxabst) { $maxabst=$abstand; $maxh=$mm; $maxv=$nn; } } } } // berechnung grafikwert for ($mm=1;$mm<=$hraster;$mm++) { for ($nn=1;$nn<=$vraster;$nn++) { if ($punkte[$mm][$nn] != -1) { $punktwert = 10 + round($punkte[$mm][$nn] / $maxabst * ($farbmax-20)) + round(mt_rand(-10,10),0); if ($farbbenutzt[$punktwert]=1) { //schon benutzt $untwert=max(1,$punktwert-75); $obwert=min($punktwert-75,$farbmax); $diffdiff = min(abs($punktwert-$untwert),abs($punktwert-$obwert)); $geaend=0; $laufvar = $punktwert; for ($jj=1;$jj<=$diffdiff;$jj++) { for ($vv=1;$vv<=2;$vv++) { if ($vv=1) $vorzf = 1; if ($vv=2) $vorzf = -1; } $aktpos=$laufvar + $vorzf * $jj; if ($geaend==0){ if ($farbbenutzt[$aktpos]=0) { $punktwert = $aktpos; $geaend =1; } } } } $punkte[$mm][$nn] = $punktwert; $farbbenutzt[$punktwert]=1; } } } //echo ""; for ($nn=1;$nn<=$vraster;$nn++) { //echo ""; for ($mm=1;$mm<=$hraster;$mm++) { //echo ""; } //echo ""; } //echo "
".$punkte[$mm][$nn]."
"; // ab hier grafik //A4-Format $bildh = 1936; $bildv = 1369; $image = imagecreatetruecolor($bildh, $bildv); $fuellfarbe = imageColorAllocate($image, 255, 255, 255); imagefilledrectangle($image, 0, 0, $bildh, $bildv, $fuellfarbe); $bchenh=20; $bchenv=20; $fakth= $bildh/($bchenh*$hraster); $faktv= $bildv/($bchenv*$vraster); $bchh1 = ceil($bchenh*$fakth); $bchv1 = ceil($bchenv*$faktv); //echo "fakth faktv: ".$fakth." ".$faktv."
"; //echo "bchh1 bchv1: ".$bchh1." ".$bchv1."
"; for ($mm=1;$mm<=$hraster;$mm++) { for ($nn=1;$nn<=$vraster;$nn++) { if ($punkte[$mm][$nn] != -1) { if ($punkte[$mm][$nn] == 0) $punkte[$mm][$nn] =1; $xpos = round(($mm-1) * $bchenh * $fakth); $ypos = round(($nn-1) * $bchenv * $faktv); //echo $xpos."/".$ypos.": "."bild/".$werte[$punktwert][4]."
"; $bildnam = "farb/".$werte[($punkte[$mm][$nn])][4]; $imageo = imagecreatefromjpeg($bildnam); imagecopyresized ($image, $imageo, $xpos, $ypos, 0, 0, $bchh1, $bchv1, $bchenh, $bchenv); } //if für -1 } //for nn } //for mm // texteinträge //matrix mit leerzeichen füllen for ($mm=1;$mm<=$hraster;$mm++) { for ($nn=1;$nn<=$vraster;$nn++) { $textfeld[$mm][$nn] = "_"; } //ende nn } //ende mm $spaltet1 = round(mt_rand(2,5),0); $zeilet1 = round(mt_rand(3,6),0); $textfeld[$spaltet1][$zeilet1] = "F"; $textfeld[$spaltet1+1][$zeilet1] = "r"; $textfeld[$spaltet1+2][$zeilet1] = "o"; $textfeld[$spaltet1+3][$zeilet1] = "h"; $textfeld[$spaltet1+4][$zeilet1] = "e"; $textfeld[$spaltet1+6][$zeilet1] = "W"; $textfeld[$spaltet1+7][$zeilet1] = "e"; $textfeld[$spaltet1+8][$zeilet1] = "i"; $textfeld[$spaltet1+9][$zeilet1] = "h"; $textfeld[$spaltet1+10][$zeilet1] = "n"; $textfeld[$spaltet1+11][$zeilet1] = "a"; $textfeld[$spaltet1+12][$zeilet1] = "c"; $textfeld[$spaltet1+13][$zeilet1] = "h"; $textfeld[$spaltet1+14][$zeilet1] = "t"; $textfeld[$spaltet1+15][$zeilet1] = "e"; $textfeld[$spaltet1+16][$zeilet1] = "n"; $spaltet2 = round(mt_rand($spaltet1,17),0); $zeilet2 = $zeilet1+2; $textfeld[$spaltet2][$zeilet2] = "2"; $textfeld[$spaltet2+1][$zeilet2] = "0"; $textfeld[$spaltet2+2][$zeilet2] = "0"; $textfeld[$spaltet2+3][$zeilet2] = "8"; $spaltet3 = 2; $zeilet3 = round(mt_rand(10,14),0); $textfeld[$spaltet3][$zeilet3] = "E"; $textfeld[$spaltet3+1][$zeilet3] = "i"; $textfeld[$spaltet3+2][$zeilet3] = "n"; $textfeld[$spaltet3+4][$zeilet3] = "g"; $textfeld[$spaltet3+5][$zeilet3] = "u"; $textfeld[$spaltet3+6][$zeilet3] = "t"; $textfeld[$spaltet3+7][$zeilet3] = "e"; $textfeld[$spaltet3+8][$zeilet3] = "s"; $textfeld[$spaltet3+10][$zeilet3] = "N"; $textfeld[$spaltet3+11][$zeilet3] = "e"; $textfeld[$spaltet3+12][$zeilet3] = "u"; $textfeld[$spaltet3+13][$zeilet3] = "e"; $textfeld[$spaltet3+14][$zeilet3] = "s"; $textfeld[$spaltet3+16][$zeilet3] = "J"; $textfeld[$spaltet3+17][$zeilet3] = "a"; $textfeld[$spaltet3+18][$zeilet3] = "h"; $textfeld[$spaltet3+19][$zeilet3] = "r"; $spaltet4 = round(mt_rand(2,17),0); $zeilet4 = $zeilet3+2; $textfeld[$spaltet4][$zeilet4] = "2"; $textfeld[$spaltet4+1][$zeilet4] = "0"; $textfeld[$spaltet4+2][$zeilet4] = "0"; $textfeld[$spaltet4+3][$zeilet4] = "9"; $fontsize = round(0.035 * $bildv); //textausgabe for ($mm=1;$mm<=$hraster;$mm++) { for ($nn=1;$nn<=$vraster;$nn++) { if ($textfeld[$mm][$nn] != "_") { $xpost = round(($mm-1) * $bchenh * $fakth + 0.2 * $bchenh * $fakth); $ypost = round(($nn-1) * $bchenv * $faktv - 0.2 * $bchenv * $faktv); $aktmittcode =$werte[($punkte[$mm][$nn])][0]+90; if ($aktmittcode > 255) $aktmittcode =$werte[($punkte[$mm][$nn])][0]-70; // if ($aktmittcode < 0) $aktmittcode =0; $black = imageColorAllocate($image, $aktmittcode, $aktmittcode, $aktmittcode); ImageTTFText ($image, $fontsize, 0, $xpost, $ypost, $black, "font/frtbo.TTF", $textfeld[$mm][$nn]); } //ende if } //ende nn } //ende mm //Ausgabe des Bildes im Browser imagejpeg($image,"file".$iijj.".jpg"); imagejpeg($image); imagedestroy($image); } // ende for mehrere grafiken ?>