Goedendag,
Wat ik wil bereiken: Ik heb meerdere plaatjes (png), die in een bepaalde volgorde 1 grote afbeelding moeten vormen. De kleine plaatjes noem ik "tiles", de grote afbeelding "map". Elke tile staat voor een sector, 49 px breed.
Elke tile heeft in een database een x en y positie. 0 = 1e positie.
[tile met (1,0) begint dus op pixel(49, 0)]
Aan het begin van het script laad ik alle tiles in $this->tiles, met als key de naam van de tile waarmee die in de database staat en value de resource naar de afbeelding, (10 stuks, 2 kb per stuk), en met het volgende script plaats ik ze:
Alles gaat goed, tot een onduidelijk moment. De ene keer plaatst het script maar 15 (van de 21) tiles, een andere keer stopt die als er in een keer een andere komt, die die al wel eerder heeft gebruikt.
Ik heb zover ik weet alles gecontroleerd, de tiles zijn allemaal geladen, $this->tiles is compleet, maar toch loopt hij soms stuk.
Zie ik iets over het hoofd? Is die functie misschien gewoon brak?
Alvast bedankt!
php: 5.1.2, gdlib: 2.0.28 compatible
Wat ik wil bereiken: Ik heb meerdere plaatjes (png), die in een bepaalde volgorde 1 grote afbeelding moeten vormen. De kleine plaatjes noem ik "tiles", de grote afbeelding "map". Elke tile staat voor een sector, 49 px breed.
Elke tile heeft in een database een x en y positie. 0 = 1e positie.
[tile met (1,0) begint dus op pixel(49, 0)]
Aan het begin van het script laad ik alle tiles in $this->tiles, met als key de naam van de tile waarmee die in de database staat en value de resource naar de afbeelding, (10 stuks, 2 kb per stuk), en met het volgende script plaats ik ze:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| while( $sector = mysql_fetch_array( $result, MYSQL_ASSOC ) ) { # sector kan uit meerdere tile's bestaan $tileParts = explode( ',', $sector['s_tile'] ); foreach( $tileParts as $tilePart ) { //echo $tilePart . '-'; // bool imagecopymerge ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct ) imagecopy( $map, $this->tiles[ $tilePart ], ( $this->sectorSize['width'] * $sector['s_x'] ), ( $this->sectorSize['height'] * $sector['s_y'] ), 0, 0, $this->sectorSize['width'], $this->sectorSize['height'] ); } } header( 'Content-type: image/png' ); header( 'Content-Length: ' . strlen( $map ) ); imagepng( $map ); |
Alles gaat goed, tot een onduidelijk moment. De ene keer plaatst het script maar 15 (van de 21) tiles, een andere keer stopt die als er in een keer een andere komt, die die al wel eerder heeft gebruikt.
Ik heb zover ik weet alles gecontroleerd, de tiles zijn allemaal geladen, $this->tiles is compleet, maar toch loopt hij soms stuk.
Zie ik iets over het hoofd? Is die functie misschien gewoon brak?
Alvast bedankt!
php: 5.1.2, gdlib: 2.0.28 compatible