Soyez le premier à donner votre avis sur cette source.
Snippet vu 7 443 fois - Téléchargée 29 fois
function MakeThumb($img,$maxX,$maxY) { // Récupération des infos sur l'image $TImage = GetImageSize($img); // Rapport initial: aucune réduction $rapport = 1; // Si la largeur de l'image est supérieure à la limite if ($TImage[0] > $maxX) // Tant que la largeur réduite est supérieure à la limite while ($TImage[0] / $rapport > $maxX) // Augmentation de la réduction $rapport = $rapport + 0.5; // Assignation de la largeur finale $xF = $TImage[0] / $rapport; // Si la hauteur de l'image est supérieure à la limite // Si non, le rapport est le même que celui utilisé pour la largeur if ($TImage[1] > $maxY) // Tant que la hauteur réduite est supérieure à la limite while ($TImage[1] / $rapport > $maxY) // Augmentation de la réduction $rapport = $rapport + 0.5; // Assignation de la hauteur finale $yF = $TImage[1] / $rapport; // Récupération du handle de l'image selon son format switch($TImage[2]) { case 1: $imageF = ImageCreateFromGIF($img); break; case 2: $imageF = ImageCreateFromJPEG($img); break; case 3: $imageF = ImageCreateFromPNG($img); break; } // Création de la miniature $thumbF = ImageCreateTrueColor($xF,$yF); // Compatibilité: ImageCopyResized($thumbF,$imageF,0,0,0,0,$xF,$yF,$TImage[0],$TImage[1]); ImageCopyResampled($thumbF,$imageF,0,0,0,0,$xF,$yF,$TImage[0],$TImage[1]); // Envoie de l'image au navigateur selon son format switch($TImage[2]) { case 1: ImageGIF($thumbF,'images/mini_'.SubStr($img,StrPos($img,'/') + 1), 60); break; case 2: ImageJPEG($thumbF,'images/mini_'.SubStr($img,StrPos($img,'/') + 1), 60); break; case 3: ImagePNG($thumbF,'images/mini_'.SubStr($img,StrPos($img,'/') + 1), 60); break; } // Libération de la mémoire ImageDestroy($thumbF); ImageDestroy($imageF); }
9 févr. 2004 à 19:13
Voici le code que j'utilise pour mon site :
$image="photos/1.jpg"; //EXEMPLE D'IMAGE
if (file_exists($image))
{
list($width, $height, $type, $attr) = getimagesize("$image");
if (($width)>100) //SI L'IMAGE FAIT PLUS DE 100PX de LARGE
{
$contenu.='
';
}
else
{
$contenu.='
';
}
}
Facile ensuite de le transformer en fonction
a +
9 févr. 2004 à 19:22
tu ne crées pas de miniature, tu modifies seulement l'affichage dans le tag donc l'image est chargée entièrement même si tu l'affiches 6 fois plus petite...
Tu vois le truc ?
Imagines une galerie de 20 * 20ko !
9 févr. 2004 à 19:27
C'est pour ça je n'ai pas approfondi. Tu réduis la taille de l'image et ensuite tu la redimensionnes. Ok Ok
a +
9 févr. 2004 à 19:28
10 févr. 2004 à 10:52
le rapport hauteur/largeur ne semble pas etre conservé!
j'utilise ca:
$IMAGE_TN_SIZE = 80 // Taille maximal a ne pas depassé (largeur ou hauteur)
$handle = @imagecreatefromjpeg($relatif_link);
$x=imagesx($handle);
$y=imagesy($handle);
//echo "X:$x | Y:$y
";
# 100
if($x>$y){ # |-------------|
$max=$x; # +-------------+ - -
$min=$y; # | | |
} # | | |
if($x<=$y){ # | img | |100
$max=$y; # | | |
$min=$x; # | | |
} # +-------------+ - -
if($max==$x){
$qq=$max/$IMAGE_TN_SIZE;
}
if($max==$y){
$qq=$max/$IMAGE_TN_SIZE;
}
$dest_x=$x/$qq;
$dest_y=$y/$qq;
if($dest_x > $x) {
$dest_x = $x;
$dest_y = $y;
}
$dst_img = imageCreatetruecolor($dest_x,$dest_y);
imagecopyresized($dst_img, $handle, 0, 0, 0, 0,$dest_x, $dest_y, $x, $y);
imagejpeg($dst_img,'', $IMAGE_TN_COMPRESSION);
imagedestroy($handle);
imagedestroy($dst_img);
qui marche impec : demo ici : http://jcjcjcjc.free.fr/server/
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.