Hallo, ik ben een PHP beginner, en loop tegen het volgende probleem aan:

Ik wil van een jpeg een thumbnail maken. Dit lukt mij wel met imagecopyresized maar de output wordt naar de browser verstuurd. Ik heb lang lopen zoeken in verschillende tuts maar heb tot dusver nog niet gevonden wat ik zoek. Ik wil dus dat de gescalede jpeg op de server wordt gezet, zodat ik als ik een serie thumbnails wil laten zien niet alle plaatjes realtime moet gaan rescalen, maar gewoon een van te voren een gescalede versie van de server kan plukken.

Alle input is van harte welkom en alvast bedankt,
Is niet van mij, maar kan je zeker met verder
Deze functie staat ook ergens op deze website.

/*
Beschrijving:
Foto verkleinen of vergrooten met gd
Hoe werkt het

Ik heb al veel op het forum gezien hoe je met php een plaatje kunt vergrooten of verkleinen. Ik heb vlug iets gemaakt dat zou moeten werken in de meeste gevallen

Hoe werkt het:
resize([Bestands naam foto], [naam aangepast foto], [breedte], [hooghte], [jpg, gif, ..])

Eerst geef je de orginele foto op: img.jpg
Dan hoe hij de hervormde foto noemd: img.jpg (mag het zelfde zijn)
De breedte in pixels naar wat hij het moet resizen
De hooghte in pixels naar wat hij het moet resizen
Wat voor type bestand; jpg, gif, png of bmp. laat dit maar leeg hij detecteerd het wel zelf.

Dus dat kan voorbeeld zijn:

<?php
resize('img.jpg', 'img.jpg', 1024, 768);
?>

*/


<?php
function resize($filename, $dest, $width, $height, $type=''){
if(@imagecreatefromgif($filename)){
$img=imagecreatefromgif($filename);
$type_r='gif';
}
elseif(@imagecreatefromjpeg($filename)){
$img=imagecreatefromjpeg($filename);
$type_r='jpg';
}
elseif(@imagecreatefrompng($filename)){
$img=imagecreatefrompng($filename);
$type_r='png';
}
elseif(@imagecreatefromwbmp($filename)){
$img=imagecreatefromwbmp($filename);
$type_r='bmp';
}
else{
return 'Cannot open file';
}
$type=($type=='')?$type_r:'';
$img_n=imagecreatetruecolor ($width, $height);
imagecopyresampled($img_n, $img, 0, 0, 0, 0, $width, $height, imagesx($img), imagesy($img));
if($type=='gif'){
imagegif($img_n, $dest);
}
elseif($type=='jpg'){
imagejpeg($img_n, $dest);
}
elseif($type=='png'){
imagepng($img_n, $dest);
}
elseif($type=='bmp'){
imagewbmp($img_n, $dest);
}
Return true;
}
?>
Dat is een hele snelle reactie :D, ik ga er mee aan de slag, helemaal te gek en bedankt !!
helaas werkt het script nog niet. Hij geeft de volgende foutmelding:

Warning: imagejpeg() [function.imagejpeg]: Unable to open url/images/4_s.jpg' for writing in /url/scripts/imageresize.php on line 29

terwijl de image wel op de server staat.

any suggestions?
Is het path wel goed in $img_n?
Kijk eens met file_exist() of de file bestaat.
Als ik $img_n echo dan krijg ik een resource ID#13.
Ik heb de file_exists($absolute_url) gedaan, maar dat werkt dus niet. Moet ik misschien een relative path opgeven om het te laten werken?

als ik de string uitlees, krijg ik wel de correcte path van mijn image te zien.

Ik ben een beginnend programmeur en snap hier eigenlijk geen bal van.. :D
Wat voer jij in als filename?
Je moet de map images de juiste chmod geven. Hij zegt ook "unable to open for writing"

Reageren