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

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

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.