Sondage du mois

Sondage du mois
 

  La connaissance ne vaut que si elle est partagée par tous




 
  Astuce Adobe Flash : Raccourci Grille des Couleurs : Ctrl F9




Les tutoriaux: Index » Php » PHP » Redimensionner vos images à la volée

Introduction

  • Tutoriel posté par Sky
  • 1709 lectures
  • Mis en ligne le 29-04-2010
  • Dernière mise à jour le 04-09-2010
  • Ce tutoriel a été estimé comme simple.


Automatic Translations:
Translate Into English Translate Into German Translate Into Italian Translate Into Spanish Translate Into Portuguese

Ce petit script tout simple vous feras gagner un temps considérable :)

Placer toutes vos images dans un répertoire et il vous les redimensionnera toutes dans un nouveau répertoire.
Dans un premier temps vous trouverez le script avec des valeurs fixe à définir, du style 500px de hauteur et 400 px de largeur. Puis en dessous le même script mais qui tient compte de la proportion largeur / hauteur.

La librairie GD2 doit être activée.

Méthodologie
Script avec des valeurs fixe à définir, du style 500px de hauteur et 400 px de largeur.

Architecture des répertoires :

-- index.php (Le script)
-- [REP] images (Toutes les images à redimensionner sont à mettre dans ce répertoire)
-- [REP] nouveaugrd


CODE PHP


<?php
// Fonction pour connaitre l'extension d'un fichier
function extension($filename){
return strrchr($filename, '.');
}

//ouverture du répertoire
if ($direct = @opendir("images/")) {  

// tant tant qu'on trouve un fichier on continu
while($file = readdir($direct)) { 

// Si le nom du fichier est différent de . (dossier parent sous unix)
if ($file != ".") { 

// Si le nom du fichier est différent de .. (root sous unix)
if ($file != "..") { 

// Nom du fichier en minuscule
$fichier = strtolower($file); 

// On créé une variable qui dans notre cas aura le nom de l'image à redimensionner 
$new_fichier = $file; 

// nom du nouveau fichier avec le dossier 
$dir = "images/$new_fichier"; 
				
// à l'aide de notre fonction extension nous trouvons l'extension du fichier.
if (extension($fichier) == '.gif') // un .gif
{
$source = imagecreatefromgif($dir); 
}
elseif(extension($fichier) == '.png') //un .png
{
$source = imagecreatefrompng($dir);
}
else // un .jpg ou .jpeg
{
$source = imagecreatefromjpeg($dir);
}

/* ------------------------------- */
/* On créé la miniature */
/* ------------------------------- */

// On définit une variable qui nous donne la valeur x de notre image source
$largeur_source = imagesx($source);

// On définit une variable qui nous donne la valeur x de notre image source
$hauteur_source = imagesy($source);

// On crée la miniature vide
$destination = imagecreatetruecolor(500, 500); 

// On prend l'image d'origine et on la redimensionne
imagecopyresized($destination, $source, 0, 0, 0, 0, 500, 500 , $largeur_source, $hauteur_source); 

// On créé l'image et on la copie dans le nouveau répertoire avec une qualité 100%
imagejpeg($destination, "nouveaugrd/$new_fichier", 100);

// On affiche un "friendly text" pour nous assurer que c'est OK (une ligne par image)
echo "Redimenssionnement OK 
"; // On ferme tout , les if, le while, le opendir ... }}} closedir($direct); } ?>



Script qui redimensionne en fonction de la largeur désirée, la hauteur s'adaptera en fonction de la largeur.

CODE PHP


<?php
// Fonction pour connaitre l'extension d'un fichier
function extension($filename){
return strrchr($filename, '.');
}

//ouverture du répertoire
if ($direct = @opendir("images/")) {  

// tant tant qu'on trouve un fichier on continu
while($file = readdir($direct)) { 

// Si le nom du fichier est différent de . (dossier parent sous unix)
if ($file != ".") { 

// Si le nom du fichier est différent de .. (root sous unix)
if ($file != "..") { 

// Nom du fichier en minuscule
$fichier = strtolower($file); 

// On créé une variable qui dans notre cas aura le nom de l'image à redimensionner 
$new_fichier = $file; 

// nom du nouveau fichier avec le dossier 
$dir = "images/$new_fichier"; 
				
// à l'aide de notre fonction extension nous trouvons l'extension du fichier.
if (extension($fichier) == '.gif') // un .gif
{
$source = imagecreatefromgif($dir); 
}
elseif(extension($fichier) == '.png') //un .png
{
$source = imagecreatefrompng($dir);
}
else // un .jpg ou .jpeg
{
$source = imagecreatefromjpeg($dir);
}

/* ------------------------------- */
/* On créé la miniature */
/* ------------------------------- */

// On définit une variable qui nous donne la valeur x de notre image source
$largeur_source = imagesx($source);

// On définit une variable qui nous donne la valeur x de notre image source
$hauteur_source = imagesy($source);

// Ce bout de code ci dessous génére une hauteur par rapport à la largeur désiré de vos vignettes
// Redimensionner à l'échelle si vous voulez :)
// Choix de la largeur de vos vignettes en px
$largeur = '500';
$hauteur = round($hauteur_source * $largeur / $largeur_source);

// On crée la miniature vide
$destination = imagecreatetruecolor($largeur, $hauteur); 

// On prend l'image d'origine et on la redimensionne
imagecopyresized($destination, $source, 0, 0, 0, 0, $largeur, $hauteur  , $largeur_source, $hauteur_source); 

// On créé l'image et on la copie dans le nouveau répertoire avec une qualité 100%
imagejpeg($destination, "nouveaugrd/$new_fichier", 100);

// On affiche un "friendly text" pour nous assurer que c'est OK (une ligne par image)
echo "Redimenssionnement OK 
"; // On ferme tout , les if, le while, le opendir ... }}} closedir($direct); }

Notes

  Evaluez le tutorial (4 Votes)

2
1
1

Copier / coller ce code et le tour est joué :) Ce script est codé par moi même, si vous avez des questions cliquez sur le lien ci-dessous. Merci

Pour les questions ou d'éventuelles remarques, dirigez vous vers le forum.

Réagir sur ce tutoriel - [Php] Redimensionner vos images à la volée

DERNIÈRES PUBLICATIONS DE OPEN-MOUTHED

En direct de open-mouthed.com