begin process at 2012 02 12 03:30:01
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > REDIMENSIONNER TOUTE VOS IMAGES A LA VOLER A PARTIR D'UN DOSSIER

REDIMENSIONNER TOUTE VOS IMAGES A LA VOLER A PARTIR D'UN DOSSIER


 Information sur la source

Note :
8,5 / 10 - par 4 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Niveau :Initié Date de création :09/09/2004 Date de mise à jour :09/09/2004 02:28:50 Vu :11 226

Auteur : ceced

Ecrire un message privé
Commentaire sur cette source (22)
Ajouter un commentaire et/ou une note

 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

RECUPERATION DES IMAGES D'UN DOSSIER EXTERIEUR
VERIFICATION EN TEMP REEL DES ADRESSE MAIL LA VRAI!
GENERER A LA VOLER UN FICHIER XML VIA UNE TABLE SQL + PHP
EXPLOI FAILLE INCLUDE & UPLOAD
SCANER VOS PORT ET AFFICHE LES PORT OUVERT + LES NOMS DES TR...

 Sources de la même categorie

Source avec Zip Source avec une capture PHPREPOGENERATOR + REPO (WIN) par alvinp
Source avec Zip IPHONE - ICÔNE D'APPEL TÉLÉPHONIQUE SUR L'ÉCRAN D'ACCUEIL par Rainbow
Source avec Zip Source avec une capture [APP WEB]SERVEUREXPLOREUR par thematrix01
Source avec Zip Source avec une capture MY.BOOKMARKS par inwebo
Source avec Zip M.V.C M.E.D par faceme

Commentaires et avis

Commentaire de troudbal le 09/09/2004 19:54:02

Salut, est-ce normal que les images une fois redimensionnées soient dégradées en couleurs ?

Commentaire de ceced le 09/09/2004 20:50:31

Non , chez moi ca marche trés bien regarde qu'elle librairie GD tu utilise.

Commentaire de troudbal le 10/09/2004 08:32:06

C'est celle qui est livrée dans php 5.0.1.
Sur la page de phpinfo il est écrit sur la ligne GD Version bundled (2.0.28 compatible).

Commentaire de apxa le 10/09/2004 10:30:18

iop,
"REDIMENSIONNER TOUTE VOS IMAGES A LA VOLER A PARTIR D'UN DOSSIER" précise qd même que cela ne fonctionne qu'avec les jpeg.

Commentaire de amosc le 12/10/2004 23:16:10

Salut,

Pas mal comme code, un peu long quand meme ...

Pour eviter que tu es des images "degradée ou N&B"
utilise à la place de :

imagecreate() ==> imagecreatetruecolor()
imagecopyresized() ==> imagecopyresampled()

@+

ps: bien joué ...

Commentaire de tynmar le 24/11/2004 13:58:54

Salut, je suis un gros naz en php, comment on fait pour "éxécuter" le script ???  

Je pense avoir fait ce qu'il faut pour que ça marche.

""une foi créer executé le script!""
comment??


merci!

Commentaire de ceced le 24/11/2004 16:44:32

bin bascule le script sur t'on serveur local ou chez t'on host tous simplement et tu fait http://TONhost.com/lescript.php

:=)

Commentaire de tynmar le 25/11/2004 12:05:14

Bonjour, j'ai fait tout comme vous avez dit, j'ai essayé avec easy php, c a d j'ai créé ma page index.php dans laquelle j'ai mis mon code php :
<?php
include('C:\Documents and Settings\Administrateur\Bureau\photos\redimension.php')
?>
et voila ce qu'il me met quand je vais avec easy php sur mon index.php (j'ai copié en txt sur mon serveur temporairement, rien que pour vous) :
http://www.octeo.com/errors.txt

j'ai mis aussi en txt la source de mon fichier redimension.php en txt sur mon serveur aussi :
http://www.octeo.com/redimension.txt
normalement, il doit être bon!

je ne pige pas, il ne se passe rien, le but c'est bien que des miniatures soient créées ? et que les grosses soient virées ?

J'essaye de comprendre petit a petit php, il y a encore des mystère. Php c'est un peu comme les  femmes, quand on croit avoir compris, on s'aperçoit qu'on est à coté de la plaque.

merci d'avance

Commentaire de ceced le 25/11/2004 12:26:58

DS Ton php.ini verifie bien si la librairie gd2 est activé et non pas la gd normal C soi l'un soi l 'autre...

Commentaire de tynmar le 25/11/2004 13:13:43

jsui vraiment désolé, je vois pas de quoi tu veux parler. Ca fait 2 semaines que je suis sur php, alors j'ai plein de choses à apprendre, c'est l'occasion.

merci

Commentaire de tynmar le 25/11/2004 13:33:44

Autant pour moi, j'y ai mis un peu du jus de cervelle, et j'ai trouvé mon php.ini(je savais meme pas que ça existait). J'ai vu que la librairie gd2 est activé et la gd n'y figure pas, elle est donc par défaut inactive? Si c'est le cas, c'est encore un phénomène paranormal.

est-ce que tu vois d'ou ça peut venir ?

merci encore

Commentaire de ceced le 25/11/2004 14:19:45

Pour activer les extention rdv ici l'explication est dans le s commentaires :

http://www.phpcs.com/code.aspx?id=21904

choisi l extention gd2 et pas la gd classic

Commentaire de tynmar le 25/11/2004 14:47:45

Mais d'ou est-ce que tu sors ? De quelle planète viens-tu ? Tu es un génie ?
C'est cool, ça marche, merci énormément de m'avoir soutenu dans cet instant de ma vie. Ca faisait 2 semaine que je ramais sur ce truc.
thanks
@+
;-)

Commentaire de tatcrew le 11/11/2005 00:54:19

Euh, si je veux garder les couleurs comme ça était dit plus haut je le met où ce code :

imagecreate() ==> imagecreatetruecolor()
imagecopyresized() ==> imagecopyresampled()

Sinon c'est cool ca marche nickel sauf pour la qualité :s

Commentaire de PsykoCors le 13/02/2006 13:37:13

Super code, juste qu'il faut penser a mettre  imagecreatetruecolor() et
imagecopyresampled() par soucis de qualité.

Merci aussi pour gd2^^ tout mes liens vers les extensions étaient corrompus (chemins inccorects) O_o Au moins ca ma permis de tout rétablir :p

Commentaire de dcoyer le 20/03/2006 12:58:09

Un grand merci pour ce script, qui va me faciliter la manipulation des images sur mon site. :)

Commentaire de viddal le 25/04/2006 18:44:36

J'ai ça comme message d'erreur, ça vient de quoi à votre avis?

Warning: getimagesize(miniature150200miniature150200space.jpg): failed to open stream: No such file or directory in d:\program files\easyphp1-8\www\images\index.php on line 17

Ca me creer des images de la bonne taille mais ce ne sont pas des redimensionnements de mes images de base.
Pourtant j'ai modifié imagecreate et imagecopyresized

Merci d'avance

Commentaire de viddal le 25/04/2006 18:59:43

Ca créé des miniatures mais les proportions ne sont pas respectées, ça me met tout en 150 * 200

Commentaire de Lindsay68 le 18/09/2007 13:24:41

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

Commentaire de PsykoCors le 18/09/2007 14:28:22

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 /******/.

Commentaire de Lindsay68 le 21/09/2007 14:20:59

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

Commentaire de metos le 18/01/2008 13:32:27

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]));
}

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,774 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales