JHx
Gebruiker
- Lid geworden
- 11 jan 2006
- Berichten
- 407
Ik ben een PHP-pagina aan het maken waarmee ik foto's kan uploaden naar mijn website, en gelijk ook resizen. Het uploaden lukt prima, maar het resizen lukt nog niet helemaal.
De bedoeling is dat de orriginele foto ge-resized wordt naar een breedte van 800px en dat er een extra thumbnail aangemaakt wordt met een breedte van 150px, telkens met behoud van de breedte/hoogte verhouding.
Voor kleine foto's lukt dat helemaal!
Voor iets grotere foto's lukt alleen de thumbnail. Bij het maken van de 800px-foto krijg ik volgende foutmelding:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 3200 bytes) in C:\wamp\www\voorbeeld57\index.php on line 24
(dat is de regel met imagecreatetruecolor())
Voor nog grotere foto's lukt ook het maken van de thumbnail niet, en dan krijg ik volgende foutmelding:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 13184 bytes) in C:\wamp\www\voorbeeld57\index.php on line 13
(dat is de regel met imagecreatefromjpeg())
Weet iemand OF dit op te lossen is, en zo ja: HOE ???
Dit is de code die ik nu gebruik:
(de code werkt alleen als de GD-lib ingeladen is)
De bedoeling is dat de orriginele foto ge-resized wordt naar een breedte van 800px en dat er een extra thumbnail aangemaakt wordt met een breedte van 150px, telkens met behoud van de breedte/hoogte verhouding.
Voor kleine foto's lukt dat helemaal!
Voor iets grotere foto's lukt alleen de thumbnail. Bij het maken van de 800px-foto krijg ik volgende foutmelding:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 3200 bytes) in C:\wamp\www\voorbeeld57\index.php on line 24
(dat is de regel met imagecreatetruecolor())
Voor nog grotere foto's lukt ook het maken van de thumbnail niet, en dan krijg ik volgende foutmelding:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 13184 bytes) in C:\wamp\www\voorbeeld57\index.php on line 13
(dat is de regel met imagecreatefromjpeg())
Weet iemand OF dit op te lossen is, en zo ja: HOE ???
Dit is de code die ik nu gebruik:
(de code werkt alleen als de GD-lib ingeladen is)
PHP:
<html>
<body>
<form action="<?php echo $_server['php-self']; ?>" method="post" enctype="multipart/form-data">
<input name="filFoto" size="30" type="file""><br>
<input type="submit" name="submit" value="submit">
</form>
<?php
if(isset($_POST['submit'])){
$aFoto=$_FILES['filFoto'];
$sNaam=$aFoto['name'];
$sTempNaam=$aFoto['tmp_name'];
list($iBreedte,$iHoogte)=getimagesize($sTempNaam); //vindt breedte en hoogte van de tijdelijke upload-image
$image=imagecreatefromjpeg($sTempNaam); //laadt de tijdelijke upload-image in een variabele
$iNieuweBreedte=150; //bepaalt de breedte voor de thumbnail
$iNieuweHoogte=$iHoogte*$iNieuweBreedte/$iBreedte; //bepaalt de hoogte voor de tumbnail met behoud van de verhouding
$tn=imagecreatetruecolor($iNieuweBreedte,$iNieuweHoogte); //maakt een nieuwe image aan voor de tumbnail
imagecopyresampled($tn,$image,0,0,0,0,$iNieuweBreedte,$iNieuweHoogte,$iBreedte,$iHoogte); //copieert tijdelijke image naar de tumbnail en resized
imagejpeg($tn, "./tmb/$sNaam", 100); //slaat de thumbnail op
echo "<img src='./tmb/$sNaam'><br>"; //geeft de thumbnail weer
$iNieuweBreedte=800; //bepaalt de breedte voor de foto
$iNieuweHoogte=$iHoogte*$iNieuweBreedte/$iBreedte; //bepaalt de hoogte voor de foto met behoud van de verhouding
$tn=imagecreatetruecolor($iNieuweBreedte,$iNieuweHoogte); //maakt een nieuwe image aan
imagecopyresampled($tn,$image,0,0,0,0,$iNieuweBreedte,$iNieuweHoogte,$iBreedte,$iHoogte); //copieert tijdelijke image naar de foto en resized
imagejpeg($tn, "./img/$sNaam", 100); //slaat de foto op
echo "<img src='./img/$sNaam'><br>"; //geeft de foto weer
}
?>
</body>
</html>