|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
REDIMENSIONNER TOUTE VOS IMAGES A LA VOLER A PARTIR D'UN DOSSIER
Information sur la source
Description
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
- <?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
- ?>
<?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!
Historique
- 09 septembre 2004 02:28:52 :
- oublie apres un teste le count ($key=$key+1;)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
|