Grafik mit fester und flexibler Breite erstellen

Ich verstehe das.

Mein Skript habe ich aber in Wochenlanger arbeit selbst geschrieben. Natürlich mit ein bisschen Hilfe hier und da aber im großen und ganzen hab ich es selber gemacht.

Bei dieser Sache komme ich aber einfach seit Monaten nicht weiter. Und da ich z.Z. krank bin, wollte ich das schaffen aber ich schaffe es nicht.

@Maik: Ich kenne keinen "moritz115" und es macht mich echt traurig das ich hier so behaldert werde als würde ich jemanden schaden. Ich kenne mich doch nur nicht so gut aus.

Edit:

Ich versuche es dann mal in der Jobbörse.
 
Zuletzt bearbeitet:
Um das ganze mal verständlicher zu erklären:

Derzeit ist es so:

X = Grafik (5px Breit)
O = Grafik (10px Breit)

XOOXXXXXXOXOOXX (100px)

Aber ich möchte das es 132px sind. :)

also:
X = Grafik (5px Breit)
O = Grafik (10px Breit)
| = Reserve Grafik (1px Breit)

XOO||||||||||||||||XXXXXXOXOO||||||||||||||||XX (132px)

Das scheint mir jetzt die Ausgangssituation zu sein. Ich gehe mal davon aus, dass du die Anzahl der einzelnen Grafiken jetzt irgendwo speicherst. Beispiel:
PHP:
$input = array("X" => 5, "O" => 7);
Dein User hat also 5mal ein X eingegeben und 7mal ein O. Um die aktuelle Breite zu bestimmen, multiplizierst du die einzelne Buchstabenanzahl mit der jeweiligen Breite. Also zum Beispiel:
PHP:
$width = array("X" => 5, "O" => 10);
$cur_width = $input["X"] * $width["X"] + $input["O"] * $width["O"];
Anschließend berechnest du die fehlende Breite und erhälst dann die Anzahl der Füllgrafiken. Da du sie ja auf 2 Seiten verteilt haben möchtest, teilst du sie durch 2. Ggf musst du dann noch einem Teil inkremieren (um eins erhöhen), falls die fehlende Breite ungerade ist.
PHP:
$max_width = 132; //maximale Breite
$cur_width =  $input["X"] * $width["X"] + $input["O"] * $width["O"];
$missing = floor(($max_width - $cur_width)/2); 
$missing = array($missing,$missing);
if( ($missing[0] +$missing[1]) < ($max_width-$cur_width) ){ 
  $missing[1]++;
}

Ich muß hier unweigerlich an "moritz115" denken :rolleyes:

mfg Maik

Das ging mir auch schon durch den Kopf :D Aber man versucht ja zu helfen wo man kann :)
 
@Maik: Ich kenne keinen "moritz115" und es macht mich echt traurig das ich hier so behaldert werde als würde ich jemanden schaden. Ich kenne mich doch nur nicht so gut aus.
Es ist nicht so gemeint dass du jemanden schadest aber es ist kontraproduktiv wenn man sich nur um einen User kümmert.
Das darfst du einem nicht übel nehmen aber Maik meinte damit nur dass es ähnliche User in der Vergangenheit gab die ohne Eigeninitiative erwartet haben dass man Ihnen den gesamten Code liefert.
Wie gesagt wir helfen gerne egal wem aber es müssen Eigeninitiative und Grundkenntnisse da sein.

Ich versuche es dann mal in der Jobbörse.
Das ist sinnvoll.
Vor allem wenn es dir zu komplex wird ;)
 
Eine Idee hätte ich noch. :)

Und zwar versuche ich dass das Skript die Grafiken vorm erstellen, öffnet und die Maße ermittelt und mir diese in einer Variable zurück gibt.

Mein erster Versuch sieht so aus:

PHP:
$sizeA = getimagesize($StandardGrafik1);
echo 'Bildbreite: ' . $sizeA[0] . '<br>'; 

$sizeB = getimagesize($StandardGrafik2);
echo 'Bildbreite: ' . $sizeB[0] . '<br>'; 

$sizeC = getimagesize($StandardGrafik3);
echo 'Bildbreite: ' . $sizeC[0] . '<br>'; 

$sizeD = getimagesize($Input1);
$sizeE = getimagesize($Input2);
$sizeF = getimagesize($Input3);
$sizeG = getimagesize($Input4);

Mit den Standard Grafiken funktioniert das auch wunderbar aber mit den $Input1, $Input2 usw nicht da in $Input1 z.B. etwas wie "ABC" drin steht. Erst später werden die einzelnen Buchstaben zu Grafiken zugeordnet.

Wie kann ich von z.B. $Input1 die Maße auslesen?

Edit:

Ich bin einen kleinen Schritt weiter.

PHP:
$sizeAA = getimagesize($Ordner1.$Input1[$j].$PFGF);
echo 'Bildbreite: ' . $sizeAA[0] . '<br>';

Mit diesem Code konnte ich wenigtens von $Input1 den ersten Buchstaben auslesen.
 
Zuletzt bearbeitet:
Hi

wenn "ABC" 3 Grafiken darstellt, sollte das eigentlich wie folgt gehen.
PHP:
$width = array("A" => 1, "B" => 2, "C" => 3); // Breiten der Buchstaben
$input1 = str_split($input1);
$cur_width = 0;
foreach($input1 as $i)
  $cur_width += $width[$i];
}

Für einen kleinen Obolus würd ich dir das Script auch entsprechend schreiben (was ich hier ja grad schon mehr oder weniger mache ;) )
 
Der Inhalt von Input1 ist von der Eingabe des Users abhängig. Da kann nur ein "A" drin sein oder auch "DD" oder "ÖL". Also je nach Eingabe im Formular.

Ich brauche also eine Funktion der alle Vorhandenen Buchstaben/Zahlen in Input1 einzeln ausliest. Mit meinem Code beachtet er nur den ersten Treffer in der Variable.

PHP:
$sizeAA = getimagesize($Ordner1.$PFBZ.$Input1[$j].$PFGF);
echo 'Bildbreite: ' . $sizeAA[0] . '<br>';

Ich vermute ich muss etwas an dieser Stelle verändern: [$j]


Wieviel wären das? Und wie lange bräuchtest du dafür? Antwort über PN wäre gut. :)

Edit:

Obwohl das jetzt der @timestamp für mich erledigt, muss ich sagen: Ich habe es hinbekommen. Bestimmt nicht so gut aber es geht. :D
 
Zuletzt bearbeitet:
Zurück