Beheerder |
|
Ik maak gebruik van de upload class van Jelle (Proximus). Dit voor het uploaden. Dan na de move functie van die class heb ik de volgende code geplaatst om te resizen. IMAGE_MAX_WIDTH is een constante met de maximale breedte van een plaatje.
/**
* Indien nodig het plaatje verkleinen
*/
$image = imagecreatefromjpeg('../templates/images/upload/' . $nieuwe_naam . '.' . $ext);
$image_x = imagesx($image);
$image_y = imagesy($image);
if ($image_x > IMAGE_MAX_WIDTH) {
/**
* Plaatje is groter dan de gedefinieerde grootte.
* We moeten het dus gaan verkleinen.
*/
$factor_x = $image_x / IMAGE_MAX_WIDTH;
$new_hoogte = $image_y / $factor_x;
/**
* Nieuw plaatje aanmaken
*/
$new_file = imagecreatetruecolor(IMAGE_MAX_WIDTH, $new_hoogte);
/**
* Nieuw plaatje genereren
*/
imagecopyresampled($new_file, $image, 0, 0, 0, 0, IMAGE_MAX_WIDTH, $new_hoogte, $image_x, $image_y);
/**
* Nieuw plaatje opslaan
* Laatste getal is kwaliteit
*/
imagejpeg($new_file, '../templates/images/upload/' . $nieuwe_naam . '.' . $ext, 60);
/**
* Gebruikte resources verwijderen.
*/
imagedestroy($image);
imagedestroy($new_file);
}
/** * Indien nodig het plaatje verkleinen */ $image = imagecreatefromjpeg('../templates/images/upload/' . $nieuwe_naam . '.' . $ext); $image_x = imagesx($image); $image_y = imagesy($image); if ($image_x > IMAGE_MAX_WIDTH) { /** * Plaatje is groter dan de gedefinieerde grootte. * We moeten het dus gaan verkleinen. */ $factor_x = $image_x / IMAGE_MAX_WIDTH; $new_hoogte = $image_y / $factor_x; /** * Nieuw plaatje aanmaken */ $new_file = imagecreatetruecolor(IMAGE_MAX_WIDTH, $new_hoogte); /** * Nieuw plaatje genereren */ imagecopyresampled($new_file, $image, 0, 0, 0, 0, IMAGE_MAX_WIDTH, $new_hoogte, $image_x, $image_y); /** * Nieuw plaatje opslaan * Laatste getal is kwaliteit */ imagejpeg($new_file, '../templates/images/upload/' . $nieuwe_naam . '.' . $ext, 60); /** * Gebruikte resources verwijderen. */ imagedestroy($image); imagedestroy($new_file); }
|