GD imagepng wil niet goed werken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Steven VG

Steven VG

14/02/2016 16:21:20
Quote Anchor link
Bij onderstaand script is het de bedoeling dat mensen kunnen klikken op bijvoorbeeld map1 en dat dan door een post de coordinaten van de geklikte area worden doorgegeven. Op dit punt moet dan een computer geplaatst worden en deze afbeelding moet dan terug weergegeven worden als <img src='./img/new.png' border='0'/> zodat hierrond nog enige extra html geplaatst kan worden. Blijkbaar zit er ergens nog een fout in want hij heeft de foutmelding: The image ... cannot be displayed because it contains errors.
Blijkbaar kan ik wel de nieuwe map opslaan als new.png en staan hier geen errors in.

Wat doe ik mis?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>"
;
}

?>
 
PHP hulp

PHP hulp

13/01/2025 20:37:28
 
Thomas van den Heuvel

Thomas van den Heuvel

14/02/2016 16:43:51
Quote Anchor link
Je creëert een afbeelding die je wilt tonen, en in dezelfde afbeelding stop je HTML.

Dat gaat niet werken he.
 
- Ariën  -
Beheerder

- Ariën -

14/02/2016 16:44:12
Quote Anchor link
Je genereert een afbeelding. Dan kan je geen HTML of andere output gebruiken.
 
Steven VG

Steven VG

14/02/2016 19:25:38
Quote Anchor link
Hoe kan ik dan de afbeelding genereren en opslaan waarna ik ze toon met wat extra uitleg bij?
 
Thomas van den Heuvel

Thomas van den Heuvel

14/02/2016 19:37:32
Quote Anchor link
Maak een aparte tussenstap (na POSTen) waarin je een plaatje genereert met een random naam die je ergens wegschrijft, vervolgens onthoud je deze locatie via een sessie ofzo, daarna kun je mogelijk weer terugkeren naar het formulier.

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.
 
Joakim Broden

Joakim Broden

15/02/2016 12:24:18
Quote Anchor link
Thomas, waarom een tussen stap en gaan klooien met sessies?? Er word al een afbeelding aangemaakt in het script van de topic starter. Die word namelijk al weggeschreven naar "./img/new.png".. Oftewel die kan hij gewoon met "echo '<img src="./img/new.png" border="0" />';" aanroepen (wat de topic starter al doet). Hij hoeft alleen de headers te verwijderen en dan zou hij het al moeten doen.
Gewijzigd op 15/02/2016 12:24:44 door Joakim Broden
 
Thomas van den Heuvel

Thomas van den Heuvel

15/02/2016 14:08:41
Quote Anchor link
Mja en hoe gaat dat werken als meerdere gebruikers dat doen? De gegenereerde afbeelding lijkt mij uniek (afhankelijk van waar wordt geklikt). Dus moeten deze afbeeldingen onder aparte bronnen worden opgeslagen en zal er op een of andere manier onthouden moeten worden wie welke afbeelding heeft gegenereerd.
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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.