Redimensionner une image

Soyez le premier à donner votre avis sur cette source.

Vue 13 875 fois - Téléchargée 529 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

Messages postés
1
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
15 juin 2010

Merci pour ce script qui m'a aide a faire apres modifications ce que je cherchais depuis un certain temps
Messages postés
32
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2007

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 '';
Messages postés
1
Date d'inscription
dimanche 6 février 2005
Statut
Membre
Dernière intervention
2 juin 2006

Super le code je l'ai intégré en 2 mn. Merci bcp
Messages postés
94
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
18 septembre 2007

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
Messages postés
2
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
18 février 2006

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.