Redimensionner une image

Soyez le premier à donner votre avis sur cette source.

Vue 14 156 fois - Téléchargée 563 fois

Description

Ce script vous permet de trouver de manière automatique les valeurs width et height d'une balise <img> de manière proportionnelle de tout un répertoire trié, avec une taille maximale à ne pas dépasser et un ajustement par hspace et vspace.

Source / Exemple :


<?php
// Nom de l'image.
$source="photo.jpg";

// Taille à ne pas dépasser, ici 200 pixels.
$taillemax=200;

// On récupère les dimension initiales de l'image.
$img = getimagesize($source);
$x=$img[0];
$y=$img[1];

// Le script.
if ($x > $y)
{
  $y=$y*(($taillemax)/$x);
  $x=$taillemax;
}
if ($y > $x)
{
  $x=$x*(($taillemax)/$y);
  $y=$taillemax;
}
if ($y == $x)
{
  $x=$taillemax;
  $y=$taillemax;
}

// On peut afficher l'image.
echo "<img src=\"$source\" width=\"$x\" height=\"$y\" />";
?>

Conclusion :


Vous pouvez ajouter une boucle while pour effectuer l'opération sur toutes les images d'un dossier par exemple.

J'ai réalisé ce script pour mon site http://rpgisland.free.fr , une galerie d'image, mais est réservé au haut débit (long à charger sinon).

On peut aussi créer de vraie miniature de cette façon avec les fonctions appropriées de PHP.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
troll85228522 Messages postés 1 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 15 juin 2010
15 juin 2010 à 13:52
Merci pour ce script qui m'a aide a faire apres modifications ce que je cherchais depuis un certain temps
Bahanix Messages postés 32 Date d'inscription samedi 31 juillet 2004 Statut Membre Dernière intervention 27 avril 2007
27 avril 2007 à 20:26
Pour ceux qui préfères des espaces plutot qu'agrandir l'image :

Remplacer a partir du if x = y :

if ($y == $x && $x > $taillemax)
{
$x=$taillemax;
$y=$taillemax;
}
if ($x < $taillemax)
{
$hs=round( ($taillemax - $x) / 2);
}
if ($y < $taillemax)
{
$vs=round( ($taillemax - $y) / 2);
}

// On peut afficher l'image.
echo '';
Neoninji Messages postés 1 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 2 juin 2006
2 juin 2006 à 14:12
Super le code je l'ai intégré en 2 mn. Merci bcp
scara 51 Messages postés 94 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 18 septembre 2007
25 avril 2006 à 22:49
VOilà. Je trouve ce code pas mal. Une petite simplification :
Remplacer "
$img = getimagesize($source);
$x=$img[0];
$y=$img[1];
"

par :
"
list($x, $y, $type, $attr) = getimagesize($source);
"

Voili voilou
dimi9454 Messages postés 2 Date d'inscription mardi 5 octobre 2004 Statut Membre Dernière intervention 18 février 2006
12 mars 2006 à 10:08
Parfait !! C'est le seul script qui marche !! (dans mon cas:^_^)

Mais je voudrais savoir comment on fait ?

Parceque pour les grandes images pas de problèmes mais pour les petites images.Elles sont carément pixélisés! Il n'y a pas un moyen pour les centrer ou ajouter un contour autour de sorte qu'on ne voie pas l'image complétement agrandie (et donc pixélisé) ?

Merci beaucoup d'avance
Afficher les 14 commentaires

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.