GD imagepng wil niet goed werken
Blijkbaar kan ik wel de nieuwe map opslaan als new.png en staan hier geen errors in.
Wat doe ik mis?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$dest_x=$_POST['dest_x'];
$dest_y=$_POST['dest_y'];
$plan = imagecreatefrompng('./img/map1.png');
if ($plan === false) {
return false;
}
//$computer = imagecreatetruecolor(16,16);
$computer = imagecreatefromgif('./img/computer.gif');
if ($computer === false) {
return false;
}
$computer_width = imagesx($computer);
$computer_height = imagesy($computer);
imagecopy($plan, $computer, ($dest_x-($computer_width/2)), ($dest_y-($computer_height/2)), 0, 0, 16, 16);
header("Content-Disposition: filename=" . $plan);
header('Content-type: image/png');
$test = imagepng($plan,'./img/new.png',9);
//imagepng($plan);
imagedestroy($plan);
imagedestroy($computer);
echo '<img src="./img/new.png" border="0" />';
//echo '<img src="data:image/png;base64,'. base64_encode($plan) . '" alt="" />';
} else {
echo "<form action='' method='post'>
<input type='image' alt='map' src='./img/map1.png' name='dest' style='cursor:crosshair;'/>
</form>";
}
?>
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$dest_x=$_POST['dest_x'];
$dest_y=$_POST['dest_y'];
$plan = imagecreatefrompng('./img/map1.png');
if ($plan === false) {
return false;
}
//$computer = imagecreatetruecolor(16,16);
$computer = imagecreatefromgif('./img/computer.gif');
if ($computer === false) {
return false;
}
$computer_width = imagesx($computer);
$computer_height = imagesy($computer);
imagecopy($plan, $computer, ($dest_x-($computer_width/2)), ($dest_y-($computer_height/2)), 0, 0, 16, 16);
header("Content-Disposition: filename=" . $plan);
header('Content-type: image/png');
$test = imagepng($plan,'./img/new.png',9);
//imagepng($plan);
imagedestroy($plan);
imagedestroy($computer);
echo '<img src="./img/new.png" border="0" />';
//echo '<img src="data:image/png;base64,'. base64_encode($plan) . '" alt="" />';
} else {
echo "<form action='' method='post'>
<input type='image' alt='map' src='./img/map1.png' name='dest' style='cursor:crosshair;'/>
</form>";
}
?>
Dat gaat niet werken he.
Je genereert een afbeelding. Dan kan je geen HTML of andere output gebruiken.
Hoe kan ik dan de afbeelding genereren en opslaan waarna ik ze toon met wat extra uitleg bij?
Is er geen data ingesteld in je sessie toon je de oorspronkelijke afbeelding, en anders de gegenereerde afbeelding. Je zult dan ook moeten nadenken over een manier om de gegenereerde plaatjes op te schonen, bijvoorbeeld wanneer ze ouder zijn dan een dag ofzo - mits van toepassing.
Verdeel en heers - deel zaken op in verschillende op zichzelf staande stappen.
Gewijzigd op 15/02/2016 12:24:44 door Joakim Broden
Tevens:
Quote:
is het de bedoeling dat mensen (noot: meervoud) kunnen klikken
Quote:
Hoe kan ik dan de afbeelding genereren en opslaan
De topicstarter lijkt dit te willen doen.
EDIT: alternatief: je geeft de coordinaten door via de URL, dan zou je on-the-fly een afbeelding kunnen genereren. Maar de vraag is/blijft of deze afbeelding op een of andere manier relevant is en blijft zodat er toch een noodzaak is om deze ergens in een permanentere vorm op te slaan. Dit kan ik niet opmaken uit het relaas van de topicstarter.
Gewijzigd op 15/02/2016 14:23:33 door Thomas van den Heuvel