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!
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.