Redimensionner toute vos images a la voler a partir d'un dossier

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 476 fois - Téléchargée 35 fois

Contenu du snippet

se script sert tous simplement a REDIMENSIONNER toutes les images scaner d'un rep Ou se trouve les tailles réelles et les envoies REDIMENSIONNER dans un sous rep (meme nom,meme extention) grace a la librairie GD2.

je tien a présiser que la fonction miniature ne vien pas de moi.
Mai d'un auteur d'ici dont je c plus le pseudo merci a toi pour cette fonction, je t pri cette fonction pour en fair une application de REDIMENSION d'image d'un dossier ou se trouve plusieur jpg,gif pour tous REDIMENSIONNER en executant le script.
Eficace, simple, Rapide, pas de perte de qualité meme REDIMENSIONNER

Source / Exemple :


<?php 
// PARTI MINIATURE
function miniature($nom_img_max_ecard_bdd, $largeur_vignette, $hauteur_vignette){
    
    /* CONFIG */
    $chmDest="miniature/"; //destination pour la miniature
    $patch=""; // Chemin de l'image de depart
    /*********/
    
    
    // resupere le nom de fichier
    $nameFile=basename($nom_img_max_ecard_bdd);
        
    // verifi si la miniature a deja été créé , ce qui evite de la généréer de nouveau
    if (file_exists($chmDest.$largeur_vignette.$hauteur_vignette.$nameFile)==""){   
        // taille de la grande image
        $size=getimagesize($patch.$nom_img_max_ecard_bdd);
        
        // Calcule les ratios mignature/image
        $ratioL=(ceil(($largeur_vignette*100)/$size[0]));
        $ratioH=(ceil(($hauteur_vignette*100)/$size[1]));

        // si le ratio larguer est plus grand que le ratio hauteur
        if ($ratioL>$ratioH){
            $size[2]=(ceil(($largeur_vignette*100)/$ratioL));
            $size[3]=(ceil(($hauteur_vignette*100)/$ratioL));
            $coordonneX="0";
            $coordonneY=(ceil(($size[1]-$size[3])/2));
        }
        else{
            $size[2]=(ceil(($largeur_vignette*100)/$ratioH));
            $size[3]=(ceil(($hauteur_vignette*100)/$ratioH));
            $coordonneX=(ceil(($size[0]-$size[2])/2));
            $coordonneY="0";

        }
        // recupere l'extention du fichier
        $extention_fichier=strtolower(substr(strrchr($nom_img_max_ecard_bdd,'.'),1));
        
        if ($extention_fichier=="jpg"){
            // créé l'img de destination par rapport a la source
            $srcImg = imagecreatefromjpeg($patch.$nom_img_max_ecard_bdd);
        }
        else{
            // créé l'img de destination par rapport a la source
            $srcImg = imagecreatefromgif($patch.$nom_img_max_ecard_bdd);
        }
        
        $dstImg = imagecreate($largeur_vignette,$hauteur_vignette); 
        imagecopyresized($dstImg, $srcImg, 0, 0, $coordonneX, $coordonneY, $largeur_vignette, $hauteur_vignette, $size[2], $size[3]);
        // retourne et crée le fichier image
        if ($extention_fichier=="jpg"){
            imagejpeg($dstImg, $chmDest.$largeur_vignette.$hauteur_vignette.$nameFile);
        }
        else{
            imagegif($dstImg, $chmDest.$largeur_vignette.$hauteur_vignette.$nameFile);
        }
        //donne les droits 755 au fichier enregistrer par le script
        chmod($chmDest.$largeur_vignette.$hauteur_vignette.$nameFile, 0755);
        // libere la ram
        imagedestroy($srcImg);
        imagedestroy($dstImg);
        $ressource=$chmDest.$largeur_vignette.$hauteur_vignette.$nameFile;
        return $ressource;
    }
    // si le fichier miniature exist deja, on le reutilise
    else{
        $ressource=$chmDest.$largeur_vignette.$hauteur_vignette.$nameFile;  
        return $ressource;
    }
}
// FIN MINIATURE

// PARTI SCAN LES EXTENTION JPG DU REP grand POUR TOUS LES REDIMENSIONNER dans le dossier "miniature"
// $rep  liste de depart!(la ou se trouve les images d'origine
$rep="C:\Documents and Settings\CECED\Bureau\grand"; 
$ext="jpg"; // l'extension sans le point 

//--- la fonction de lecture ---// 
function lirerep($rep,$ext){ 
$liste=array(); 
$lire=opendir($rep); 

while($fichier=readdir($lire)){ 

if($fichier!='.' && $fichier!='..') 
{ 
$liste[]=$fichier; 
} 
} 
$trouve=array_values(preg_grep('`\.'.$ext.'$`',$liste 
//,PREG_GREP_INVERT 
)); 
return $trouve; 
} 
//--- fin fonction ---// 

//--- l'affichage ---// 
foreach(lirerep($rep,$ext) as $key=>$val){ 
$key=$key+1; 
echo $key.' : '.miniature($val, 150, 200).' image OK!<br/>'; 
} 

// LA TAILLE LARGEUR=150 hauteur=200  a modifier
?>

Conclusion :


EXPLICATION:

Créer un dossier "grand"/
Dans le dosier "grand" mettez toutes vos images taille réelles
Créer dans le dossier grand un sous dossier nomé "miniature" toutes vos images qui etais dans le dossier grand seron redimentioné dans le dossier miniature.

// POUR LES UTILISITATEUR DE WINDOWS DANS LA PARTI SCAN LES EXTENTION JPG
// LA VAR REP="Metez votre chemin absolu";
// POUR LES UTILISATEUR DE LINUX OU AUTRE /home/httpd/www/ ect..

une foi créer executé le script!

A voir également

Ajouter un commentaire

Commentaires

cs_metos
Messages postés
168
Date d'inscription
vendredi 18 janvier 2002
Statut
Membre
Dernière intervention
19 octobre 2009
-
j'ai rajouter ces quelques lignes pour que la mignature puisse garder les proportions d'origines en fonctions en lui spécifiant les dimensions maximale de la miniature. on sera ainsi sur que la miniature sera plus petite ou égale au taille choisie :

//on fixe la hauteur de la miniature, par exemple 250px ici
$largeur_vignette=$maxWsize;

//on fixe la hauteur en fonction de la largeur de maxWsize $ratioL=(ceil(($largeur_vignette*100)/$size[0]));
$hauteur_vignette=$size[1]*$ratioL/100;
$ratioH=(ceil(($hauteur_vignette*100)/$size[1]));

//Si la taille redimensionner de la hauteur est plus grande que la taille spécifié, il
faut alors redimensionner en fixant la hauteur.
if($hauteur_vignette>$maxHsize)
{
$hauteur_vignette=$maxHsize;
$ratioH=(ceil(($hauteur_vignette*100)/$size[1]));
$largeur_vignette=$size[0]*$ratioH/100;
$ratioL=(ceil(($largeur_vignette*100)/$size[0]));
}
Lindsay68
Messages postés
2
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
21 septembre 2007
-
Je me doute que c'était à la ligne 8, le tout est de trouver l'erreur. Si tu compares au script ci-dessus, la mienne se trouve à la ligne 7. Apparemment je me trompe sur le chemin des images de départ, mais je ne vois pas où. Pour moi le chemin est correct, pas pour notepad. Je suis dans l'impasse. Je trouverais, dussé-je y mettre le temps. Merci
PsykoCors
Messages postés
4
Date d'inscription
samedi 28 janvier 2006
Statut
Membre
Dernière intervention
18 septembre 2007
-
Au vu du message, il s'agirait bêtement d'une petite erreur de code. Je te conseille de regarder la ligne 7 et 8 de ton code, il doit y avoir une erreur, logiquement au niveau du commentaire /******/.
Lindsay68
Messages postés
2
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
21 septembre 2007
-
Bonjour,

J'ai recopié le script mais il me donne cette erreur : Parse error: syntax error, unexpected '*' in C:\wamp\www\tests\redimension.php on line 8. Je suis novice et je ne vois pas du tout ce que cela peut être. Si quelqu'un a une solution, je suis preneuse.

Merci,

Lindsay
viddal
Messages postés
8
Date d'inscription
samedi 18 mars 2006
Statut
Membre
Dernière intervention
26 juillet 2009
-
Ca créé des miniatures mais les proportions ne sont pas respectées, ça me met tout en 150 * 200

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.