Tu peux faire une page qui va créer tes minatures à la volée et te les retourne avec une adresse du style :
<img src="miniature.php?img=monImage.jpg" alt="monImage" />
Et voici le code possible de la page miniature.php :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?php
header('Content-Type: image/jpeg');
$img_in = imagecreatefromjpeg($_GET['img']);
$x_in = imagesx($img_in);
$y_in = imagesy($img_in);
$x_out = 150;
$y_out = $x * $y / $x_out;
$img_out = imagecreatetruecolor($x_out, $y_out);
imagecopyresampled($img_out, $img_in, 0, 0, 0, 0, $x_out, $y_out, $x_in, $y_in);
imagedestroy($img_in);
echo imagejpeg($img_out);
?> |
Ce script redimensionne donc les images JPG dont l'adresse est passée dans l'URL, proportionnellement de façon à ce que leur largeur fasse 150 pixels.
A noter que ce code peut être grandement optimisé :- Test de la validité de l'adresse passée
- Test du fichier (type mime) passé
- Adaptable à d'autres formats (GIF, PNG)
- Dimensions variables
- ...etc
Il n'est pas non plus très optimisé dans le principe car il oblige à générer à chaque fois dynamiquement les images alors qu'elles pourraient être stockées quelqu'un part, avec un système de cache par exemple.
Partager