Gå til innhold

Tegne bilde av flere bilder


Anbefalte innlegg

Hei på dere, min tur til å spørre om litt hjelp igjen.

 

Lager et spill som fungerer slik at det er bygget opp av mange små ruter 100x100px langs x og y-aksen. Blir som et stort sjakkbrett på en måte. Også har jeg lyst til å lage et minimap av det. Ideen er da å merge alle disse bildene sammen, resize det og tegne bildet for brukeren. Er det noen som vet åssen dette kan gjøres på en elegant måte? Er da snakk om å merge flere bilder. Har sett noen funksjoner, men de merger bare et bilde...

Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+142

Jeg ser for meg at imagecopyresized sine dst_x- og dst_y-parametre vil kunne la deg opprette et bilde (imagecreate) og bruke det som destinasjon for disse bildene du setter sammen? Slik at du da har et sett med imagecopyresized som resizer og legger inn bilder i det som endelig blir et kart :)

Lenke til kommentar

Men blir det sånn at jeg må lage et bilde av to bilder, lagre det, legge til et, lagre det, legge til et (osv)? Eller er det mulig å samle alle bildene som skal merges og merge dette sammen i en prosess? Prøver å gjøre dette så enkelt som mulig.

Lenke til kommentar
Gjest Slettet+142

Det kan gjøres i én prosess :)

 

Eksempel:

<?php

$bilde1 = imagecreate(100, 100);
$bilde2 = imagecreate(100, 100);
imagefilledrectangle($bilde1, 0, 0, 100, 100, imagecolorallocate($bilde1, 0, 0, 0));
imagefilledrectangle($bilde2, 0, 0, 100, 100, imagecolorallocate($bilde2, 255, 255, 255));

$bilder = array($bilde1, $bilde2);

$num_x = 5; $num_y = 5;
$new_w = 20; $new_h = 20;

$map = imagecreate($new_w * $num_x, $new_h * $num_y);

for($i=0; $i < $num_y; $i++)
   for($k=0; $k < $num_x; $k++)
       imagecopyresized($map, $bilder[($i*$num_x + $k)%2==0], $k * $new_w, $i * $new_h, 0,  0, $new_w, $new_h, 100, 100);

header("Content-type: image/png");
imagepng($map);

imagedestroy($bilde1);
imagedestroy($bilde2);
imagedestroy($map);

?>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...