Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1226 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
Unité de Masse
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]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR