Image generator
svm - 02/08/2006 18:48 (laatste wijziging 02/08/2006 21:54)
PHP ver gevorderde
Ik ben met een script bezig waarmee je gemakkelijk een GD afbeelding kunt maken, zelfs als je geen verstand hebt van HTML of PHP.
Maar nu heb ik een probleem:
Als ik de afbeelding maak komt er iets te staan als: ‰PNG IHDRÂ,j˜!ô.
Weten jullie hoe dit komt?
En hoe los ik dit op?
De code:
// formulier
<form action="" method="post">
Breedte: <input type="text" name="breedte" /><br />
Lengte: <input type="text" name="lengte" /><p />
Rood (0 tot 255): <input type="text" name="rood" /><br />
Groen (0 tot 255): <input type="text" name="groen" /><br />
Blauw (0 tot 255): <input type="text" name="blauw" /><p />
<input type="submit" name="submit" value="Creeër" />
</form>
// verwerking
<?php
header("content-type: image/png");
$afbeelding = ImageCreate($_POST['breedte'], $_POST['lengte']);
$achtergrond = ImageColorAllocate($image, $_POST['rood'], $_POST['groen'], $_POST['blauw']);
ImagePng($afbeelding);
ImageDestroy($afbeelding);
?>
// formulier
<form action="" method="post">
Breedte: <input type="text" name="breedte" /><br />
Lengte: <input type="text" name="lengte" /><p />
Rood (0 tot 255): <input type="text" name="rood" /><br />
Groen (0 tot 255): <input type="text" name="groen" /><br />
Blauw (0 tot 255): <input type="text" name="blauw" /><p />
<input type="submit" name="submit" value="Creeër" />
</form>
// verwerking
<?php
header ( "content-type: image/png" ) ; $afbeelding = ImageCreate( $_POST [ 'breedte' ] , $_POST [ 'lengte' ] ) ;
$achtergrond = ImageColorAllocate( $image , $_POST [ 'rood' ] , $_POST [ 'groen' ] , $_POST [ 'blauw' ] ) ;
ImagePng( $afbeelding ) ;
ImageDestroy( $afbeelding ) ;
?>
12 antwoorden
Gesponsorde links
Maarten - 02/08/2006 18:52
Erelid
<form action="" method="post">
Moet die action dan niet naar de verwerking verwijzen...
svm - 02/08/2006 18:55 (laatste wijziging 02/08/2006 18:56)
PHP ver gevorderde
Die verwerking staat op dezelfde pagina.
Dan hoef je er toch niks in te zetten?
Edit:
Heb aangepast, maar werkt niet.
Tim2 - 02/08/2006 19:05
PHP interesse
je verzend eerst data, html en dan krijg je header("content-type: image/png");
dat gaat niet. Goede code:
<!-- index.php --><form action="doe.php" method="post">
Breedte: <input type="text" name="breedte" /><br />
Lengte: <input type="text" name="lengte" /><p />
Rood (0 tot 255): <input type="text" name="rood" /><br />
Groen (0 tot 255): <input type="text" name="groen" /><br />
Blauw (0 tot 255): <input type="text" name="blauw" /><p />
<input type="submit" name="submit" value="Creeër" />
</form>
<!-- index. php -->< form action= "doe.php" method= "post" >
Breedte: < input type= "text" name= "breedte" />< br />
Lengte: < input type= "text" name= "lengte" />< p />
Rood ( 0 tot 255 ) : < input type= "text" name= "rood" />< br />
Groen ( 0 tot 255 ) : < input type= "text" name= "groen" />< br />
Blauw ( 0 tot 255 ) : < input type= "text" name= "blauw" />< p />
< input type= "submit" name= "submit" value= "Creeër" />
</ form>
en
<?php
// Dit is doe.php
header("content-type: image/png");
$afbeelding = ImageCreate($_POST['breedte'], $_POST['lengte']);
$achtergrond = ImageColorAllocate($image, $_POST['rood'], $_POST['groen'], $_POST['blauw']);
ImagePng($afbeelding);
ImageDestroy($afbeelding);
?>
<?php
// Dit is doe.php
header ( "content-type: image/png" ) ; $afbeelding = ImageCreate( $_POST [ 'breedte' ] , $_POST [ 'lengte' ] ) ;
$achtergrond = ImageColorAllocate( $image , $_POST [ 'rood' ] , $_POST [ 'groen' ] , $_POST [ 'blauw' ] ) ;
ImagePng( $afbeelding ) ;
ImageDestroy( $afbeelding ) ;
?>
svm - 02/08/2006 19:10 (laatste wijziging 02/08/2006 19:10)
PHP ver gevorderde
Bedankt, maar dit werkt ook niet goed.
Probeer maar eens .
Maarten - 02/08/2006 19:45 (laatste wijziging 02/08/2006 19:45)
Erelid
Comment even die header() in doe.php, dan komen de foutmeldingen erop.
$achtergrond = ImageColorAllocate($image, $_POST['rood'], $_POST['groen'], $_POST['blauw']);
$achtergrond = ImageColorAllocate( $image , $_POST [ 'rood' ] , $_POST [ 'groen' ] , $_POST [ 'blauw' ] ) ;
Die $image moet $afbeelding zijn IMO?
svm - 02/08/2006 19:48 (laatste wijziging 02/08/2006 21:55)
PHP ver gevorderde
He, das een slim idee...
Hij werkt nu.
Maar hoe kan ik die pagina's nu in één pagina zetten?
Want als ik dat doet geeft hij weer die rare tekens (‰PNG IHDRÂ,j˜!ô).
Edit:
Heb ik al een oplossing voor, met een iframe waar hij in geladen wordt:
Form-tage bevat target="frame".
En iframe de naam frame.
En nu probeem 2:
Er zit een parse error in regel 6:
<?php
// Dit is doe.php
header("content-type: image/png");
$afbeelding = ImageCreate($_POST['breedte'], $_POST['lengte']);
$achtergrond = ImageColorAllocate($afbeelding, $_POST['rood1'], $_POST['groen1'], $_POST['blauw1']);
$tekst-kleur = ImageColorAllocate($afbeelding, $_POST['rood2'], $_POST['groen2'], $_POST['blauw2']);
ImageString($afbeelding, $_POST['tekst-groot'], $_POST['txt-x'], $_POST['txt-y'], $_POST['txt-tekst'], $tekst-kleur);
ImagePng($afbeelding);
ImageDestroy($afbeelding);
?>
<?php
// Dit is doe.php
header ( "content-type: image/png" ) ; $afbeelding = ImageCreate( $_POST [ 'breedte' ] , $_POST [ 'lengte' ] ) ;
$achtergrond = ImageColorAllocate( $afbeelding , $_POST [ 'rood1' ] , $_POST [ 'groen1' ] , $_POST [ 'blauw1' ] ) ;
$tekst - kleur = ImageColorAllocate( $afbeelding , $_POST [ 'rood2' ] , $_POST [ 'groen2' ] , $_POST [ 'blauw2' ] ) ;
ImageString( $afbeelding , $_POST [ 'tekst-groot' ] , $_POST [ 'txt-x' ] , $_POST [ 'txt-y' ] , $_POST [ 'txt-tekst' ] , $tekst - kleur) ;
ImagePng( $afbeelding ) ;
ImageDestroy( $afbeelding ) ;
?>
Zien jullie hem?
Die 'variabelen' (hoe ze hier ook mogen heten) worden wel verzonden.
vinTage - 02/08/2006 22:07
Nieuw lid
$tekst-kleur
tekst min kleur ?
ik denk dat het $tekst_kleur oid moet zijn.
svm - 02/08/2006 22:11 (laatste wijziging 02/08/2006 22:43)
PHP ver gevorderde
Oh, ja: - staat voor min.
Ik bedoelde het gewoon als streepje, daarom zag ik het ook niet.
Bedankt vinTage!
En weer iets:
Het is geen echt probleem maar gewoon een extratje om problemen te voorkomen.
Hoe maak je een text input zo, dat er alleen cijfers in kunnen?
Het liefst een html of js-je, zo kort mogelijk.
svm - 02/08/2006 22:48
PHP ver gevorderde
Bedankt, maar hier kun je gewoon tekst in typen, als je maar op ok klikt.
Ik wil het graag zo hebben dat als je op een letter-toets drukt, dat er niks gebeurd.
Op een cijfer, dan komt het cijfer er wel in.
svm - 02/08/2006 22:57 (laatste wijziging 02/08/2006 23:15)
PHP ver gevorderde
Oke, zal het proberen.
Hoop dat het me lukt, ben niet zo goed in Engels en JS.^^
Edit:
Gelukt.
Bedankt!
@Crew:
Nog niet sluiten!
Gesponsorde links
Dit onderwerp is gesloten .