je suis venu avec ceci:On-the-fly miniatures PHP
<?php
$dir = $_GET['dir'];
header('Content-type: image/jpeg');
$create = imagecreatetruecolor(150, 150);
$img = imagecreatefromjpeg($dir);
imagecopyresampled($create, $img, 0, 0, 0, 0, 150, 150, 150, 150);
imagejpeg($create, null, 100);
?>
Il fonctionne en accédant à:
Ce qui fonctionne très bien ... mais la sortie est horrible:
alt text http://i47.tinypic.com/119s47a.jpg
Quelqu'un peut-il fixer mon code pour que l'image soit de 150 x 150 couvrant la zone noire ...
Merci.
SOLUTION:
<?php
$dir = $_GET['dir'];
header('Content-type: image/jpeg');
list($width, $height) = getimagesize($dir);
$create = imagecreatetruecolor(150, 150);
$img = imagecreatefromjpeg($dir);
$newwidth = 150;
$newheight = 150;
imagecopyresized($create, $img, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagejpeg($create, null, 100);
?>
Vous pouvez également utiliser .htaccess pour réécrire l'URL et ont des chemins comme: http://domain.com/imagephp/thisistheimage.jpg –
Vous devez enregistrer une copie de l'image redimensionnée avec les paramètres largeur/hauteur de le nom de fichier et vérifiez s'il existe avant de traiter et de servir celui-là de sorte que vous gardez la charge sur le serveur. Utilisez également imagedestroy ($ create) après imagejpeg() pour libérer de la mémoire. – stagas