Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1897 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Traitement d'image trop long pour l'hebergeur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Traitement d'image trop long pour l'hebergeur

n°1474022
djedie7
Posté le 11-11-2006 à 21:57:54  profilanswer
 

Bonjour,
j'ai crée une fonction qui me permet de gérer ma galerie photo.
J'ai un dossier nommé 'FULL' qui contient mes images nommées 1.jpg, 2.jpg, ...
 
Le script crée 3 formats miniatures de ces photos (miniature, aperçu, zoom).
Tout fonctionne bien en local, bien que j'ai du rajouter un set_time_limit(0); afin de ne pas dépasser les 30s du time_limit de php.ini.
En local, donc, tout est ok.
 
Cependant, lorsque je test cette fonction sur mon hebergeur, tout commence bien, mais le script s'arrête vers la 8eme photo. :?  
 
Je pense qu'il doit y avoir un config de l'hebergeur qui évite la surcharge de son proc, mais bon...
Pour info, je suis chez 1and1
 
Quelles solutions pourriez-vous me proposer ?
 
 

Code :
  1. function creation($repertoire){
  2. // CREATION DES MINIATURES  
  3. $home = $repertoire."/home/";
  4. $mini = $repertoire."/mini/";
  5. $big = $repertoire."/big/";
  6. $full = $repertoire."/full/";
  7. $nb=count_files($full, ".jpg", 0);
  8. // On crée le dossier
  9. mkdir($home);
  10. mkdir($mini);
  11. mkdir($big);
  12. set_time_limit(0);
  13. $i=1;
  14. while($i<=$nb) {
  15.  $big_file = $full.$i.'.jpg';
  16.  $source = imagecreatefromjpeg($big_file); // La photo est la source
  17.  $largeur_source = imagesx($source);
  18.  $hauteur_source = imagesy($source);
  19.  if(($largeur_source)>($hauteur_source)){
  20.  if ($i<6) $destination = imagecreatetruecolor(250, 187); // On crée la miniature vide
  21.  $destination2 = imagecreatetruecolor(100, 75); // On crée la miniature vide
  22.  $destination3 = imagecreatetruecolor(640, 480); // On crée la miniature vide
  23.  }
  24.  else {
  25.  if ($i<6) $destination = imagecreatetruecolor(187,250); // On crée la miniature vide
  26.  $destination2 = imagecreatetruecolor(75,100); // On crée la miniature vide
  27.  $destination3 = imagecreatetruecolor(480,640); // On crée la miniature vide
  28.  }
  29.  // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image  
  30.  if ($i<6) $largeur_destination = imagesx($destination);
  31.  $largeur_destination2 = imagesx($destination2);
  32.  $largeur_destination3 = imagesx($destination3);
  33.  if ($i<6) $hauteur_destination = imagesy($destination);
  34.  $hauteur_destination2 = imagesy($destination2);
  35.  $hauteur_destination3 = imagesy($destination3);
  36.  // On crée la miniature
  37.  if ($i<6) imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
  38.  imagecopyresampled($destination2, $source, 0, 0, 0, 0, $largeur_destination2, $hauteur_destination2, $largeur_source, $hauteur_source);
  39.  imagecopyresampled($destination3, $source, 0, 0, 0, 0, $largeur_destination3, $hauteur_destination3, $largeur_source, $hauteur_source);
  40.  if ($i<6) $file_home = $home.$i.'.jpg';
  41.  $file_mini = $mini.$i.'.jpg';
  42.  $file_big = $big.$i.'.jpg';
  43.  // On enregistre la miniature"
  44.  if ($i<6) imagejpeg($destination, $file_home);
  45.  imagejpeg($destination2, $file_mini);
  46.  imagejpeg($destination3, $file_big);
  47.  echo '<img src='.$file_mini.' alt="ok" /> ';
  48.  $i++;
  49. }
  50. }

 
 
Merci d'avance pour vos réponses !

mood
Publicité
Posté le 11-11-2006 à 21:57:54  profilanswer
 

n°1474089
djedie7
Posté le 12-11-2006 à 02:50:46  profilanswer
 

G trouvé la solution :
test de l'existence des fichiers pour ne pas refaire la meme chose  meta refresh pour recharger la page.
 
C est un peu long, mais C ok

n°1474143
FlorentG
Posté le 12-11-2006 à 12:41:14  profilanswer
 

Un truc aussi, c'est de générer une miniature à partir de la miniature précendente : d'abord tu fais la 640 * 480, ensuite la 250 * 187 à partie de la 640, et enfin la 100 * 75 à partir de la 250. Ca allègera aussi pas aml en temps de calcul je pense bien :)

n°1474295
djedie7
Posté le 13-11-2006 à 00:15:46  profilanswer
 

ah !
Bien vu ca...
Je vais tester !

n°1474303
masklinn
í dag viðrar vel til loftárása
Posté le 13-11-2006 à 05:44:51  profilanswer
 

C'est quoi l'intérêt du refresh? [:pingouino]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1474308
djedie7
Posté le 13-11-2006 à 07:47:28  profilanswer
 

la page qui execute le script s arrete au bout de 8/9 images.
A son rechargement apres le refresh, la fonction recommence sans retravailller sur les images faites, donc elle fait les 8 images suivantes.
A la fin de la fonction, quand on sort du while; il y a un meta refresh vers une utre page et le code ne s execute plus.
 
Voila!
je sais pas si c'est tres clair... ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Traitement d'image trop long pour l'hebergeur

 

Sujets relatifs
[RESOLU] PHP EXIF et retouche d'imageEspace apres une image
Ecandré image OnClickObtenir adresse ip externe (internet) de la passerelle ? image inside!
[JAVA ou ACTIVE X] Cherche soultions pour resize image + uploadprobleme pour faire defiler un texte entre 2 image
MySQL : transferer bdd chez hebergeur[GD] Contour d'une image rectangulaire
Aide .html + preview d'image dans des cadresproblème de double clic en ligne sur site fait avec image ready
Plus de sujets relatifs à : Traitement d'image trop long pour l'hebergeur


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)