Grafiken laden, bearbeiten und in ein Magazin laden

Alice

Erfahrenes Mitglied
Hallo. :)

Ich habe wieder eine Frage.

PHP:
$ordner = './images/grafiken/';

PHP:
$var = 'BMW500PS';

Ich suche eine Möglichkeit in einem Rutsch für jedes Zeichen in der Variable eine Grafik zu laden und in eine andere größere Grafik zu setzen.

Beispiel:
1. Erstes Zeichen in $var als Grafik laden (B.png)
2. Die Dimensionen von "B.png" feststellen
3. Eine neue Grafik mit der Breite von "B.png" erstellen (die Höhe ist fest)
4. Eine Grafik (1px Breit - ist ein Background) in die neue Grafik kopieren und so oft (nach rechts) wiederholen bis alles voll ist
5. B.png in die neue Grafik kopieren (Koordinaten immer gleich)
6. Die neue Grafik muss nun als Variable verfügbar und nutzbar sein (nur im RAM)

Wenn es nur eine Grafik wäre (B.png) wäre es ja nicht so ein großes Problem für mich aber es sind ja mehrere Grafiken

B.png
M.png
W.png
5.png
0.png
0.png
P.png
S.png

Jemand eine Idee wie ich das umsetzen könnte?
 
PHP:
$len = strlen($var);

for ( $i=0; $i<$len; $i++ )
{
  $curChar = $var[$i];

  // $curChar enthält nun entweder B, M, W, 5, 0, 0, P oder S
}
 
Ist der Hintergrund immer gleich?

Ja die Hintergrund Grafik ist immer die selbe. Die Hintergrund kannst du dir vorstellen wie auf einer Webseite die sich solange widerholt bis alles ausgefüllt ist.

Im Skript muss die Hintergrund in der neuen Grafik (imagecreatetruecolor oder so) von links nach rechts eingefüllt werden.

Edit:

Hätte da noch ne Frage.

Wäre eine Funktion nicht sinnvoller? Vielleicht denke ich jetzt einfach nur falsch aber wäre es dann nicht evtl. möglich auch Grafiken anzusprechen die NICHT im selben Verzeichnis liegen?

B.png (./images/lalala1/)
M.png (./images/lalala2/)
W.png (./images/lalala1/)
 
Zuletzt bearbeitet:
Du kannst es vielleicht so lösen:
PHP:
<?php
$letters = array(
  'B' => './images/lalala1/b.png',
  'M' => './images/lalala2/m.png',
  'W' => './images/lalala1/w.png',
);

$resources = array();

foreach($letters as $letter => $file) {
  $resources[$letter] = imagecreatefrompng($file);
}
 
Kann man dafür nicht besser eine Funktion bauen? Leider finde ich bei Google nichts ähnliches wie es brauche.
 
Finde ich zwar unsinnig, aber wie du meinst:
PHP:
<?php
$letters = array(
  'B' => './images/lalala1/b.png',
  'M' => './images/lalala2/m.png',
  'W' => './images/lalala1/w.png',
);

function load_resources(array $letters) {
  $resources = array();
  
  foreach($letters as $letter => $file) {
    $resources[$letter] = imagecreatefrompng($file);
  }
  return $resources;
}

load_resources($letters);
 
Zurück