Des livres incontournables pour tout maîtriser

  • CSS2
  • Réussir son site web avec XHTML et CSS
  • PHP 5 avancé
  • Memento CSS
  • Memento XHTML
  • Ergonomie web
  • Bien rédiger pour le web
Auteur
fabrice88
# 02 Jul 2009 - 12:38:10
Citer
167 Posts
bonjour,
j'ai des images format 1024 * 768 dans un repertoire.
afin d'afficher ces images sur mon site internet je cré une fausse miniature de chaque images en modifiant le height et le whidth mais le resulatat obtenu ne me conviend pas.

je voudrais que mes miniatures d'images aient en largeur maxi 90 px et en hauteur maxi 90px (que je modifierai par la suite en fonction du graphisme de mon site).
le problème et que le redimenssionnement ne fonctionne pas toujours car j'ai des images qui ont leur dimenssions plus grandes que celle que je souhaites.

actuellement j'ai fais ce petit bout de code : si vous pouviez m'aider a resoudre ce probleme...


if(!empty($fichier)){
sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant
echo "Liste des fichiers/documents accessibles dans '$dir_nom' :<br/>";
foreach($fichier as $lien) {
$size = GetImageSize("$dir_nom/$lien");

//Largeur maximale de l'image pour la cr&eacute;ation des miniatures
$largeur_maxi = 90;
$hauteur_maxi = 90;
if ($size[0] > $largeur_maxi)
{
$width = $largeur_maxi;
$theight = ($size[0]/$largeur_maxi);
$height = ($size[1]/$theight);
}

if ($size[1] > $hauteur_maxi)
{
$height = $hauteur_maxi;
$twidth = ($size[1]/$hauteur_maxi);
$width = ($size[0]/$twidth);
}

echo "<a href=\"$dir_nom/$lien \"><img src=\"$dir_nom/$lien \" width=".$width." height=".$height." alt=\"Photo des Vosges : $lien\" /></a>";

echo $size[0]. 'x' .$size[1] ;
}
echo "";
}


http://www.photos-vosges.fr 
^
kurt11
# 02 Jul 2009 - 23:05:47
Citer
101 Posts
Pour cela il faut que tu compares leurs ratios à 1 et si c'est supérieur tu modifies la largeur et si inférieur la hauteur.
Ex :

$largeur = 16;
$hauteur = 9;

$ratio = $largeur / $hauteur;

if($ratio == 1) {// ya rien à faire }
elseif($ratio > 1) {
$largeur = LARGEUR_MAX;
$hauteur = $hauteur * LARGEUR_MAX / $largeur;
}
elseif($ratio < 1) {
$hauteur = HAUTEUR_MAX;
$largeur = $largeur * HAUTEUR_MAX / $hauteur;
}


Voilà, normalement ça devrait aller cligne

Burn IE6, burn!

http://slimiii.eu 
^
Powered by Phedio v3.8.6 beta in 5.2 ms © dew