IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[GD] Upload et redimensionnement d'images volumineuses


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut [GD] Upload et redimensionnement d'images volumineuses
    Bonjour à tous,

    J'utilise dans une interface d'administration d'un site un script permettant d'uploader une photo, la redimensionner, puis en ajax (asynchrone) créer 3 vignettes de dimensions différentes.

    J'envoie 3 photos en POST dans le même formulaire, volumineuses (2 ou 3 Mo chacune), et les images sont traitées avec move_uploaded_file, puis imagecreatefromjpeg, imagecreatetruecolor, imagecopyresampled.

    Sur le serveur (dédié), j'ai augmenté très copieusement les valeurs upload_max_filesize, post_max_size, memory_limit, max_execution_time et max_input_time.

    Le script tourne jusqu'au bout, m'envoie les messages de retour attendus (photo copiée, redimensionnée, etc), mais j'ai systématiquement un problème avec la 2ème photo (bande grise plus ou moins étendue en bas de l'image).

    Bizarrement, la 3ème photo passe toujours bien.

    J'ai pensé que ma 2ème image était corrompue : même en inversant les images, c'est toujours la 2ème qui pose problème.

    Pour info, la fonction de redimensionnement (pour la lisibilité, j'ai supprimé les vérifications) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    function resizePhoto($name_filephoto, $photoDir, $photoLargeurMax, $photoHauteurMax, $prefixePhoto, $hauteurFixe = '', $largeurFixe = '') {
     
    	$image = $name_filephoto;   
    	$source = $photoDir;
    	$destination = $photoDir;
    	$size = getimagesize($source.$image);
    	$largeur_src=$size[0];
    	$hauteur_src=$size[1];
     
    	$image_src=imagecreatefromjpeg($source.$image); 
     
    	$ratio = ajoutPhoto::ratio($photoLargeurMax, $photoHauteurMax, $largeur_src, $hauteur_src, $hauteurFixe, $largeurFixe);
     
    	if($ratio!=1) { // si ratio != 1
    		$image_dest=imagecreatetruecolor(round($largeur_src*$ratio), round($hauteur_src*$ratio));
    		imagecopyresampled($image_dest,$image_src,0,0,0,0,round($largeur_src*$ratio),round($hauteur_src*$ratio),$largeur_src,$hauteur_src);
    		imagedestroy($image_src);
     
    		if(!imagejpeg($image_dest, $destination.$prefixePhoto.$image)){ 
    		$result = "<p>le dimensionnement de la photo $image a &eacute;chou&eacute;. R&eacute;essayez dans quelques minutes. Si le probl&egrave;me persiste, contactez le webmaster.<br />destination = ".$destination.$prefixePhoto.$image."</p> \n <hr /> \n "; 
    		}
     
    		else {
    			imagedestroy($image_dest);  
    			chmod($destination.$prefixePhoto.$image, 0775);
    			$result = "<p>Photo $image redimensionn&eacute;e </p> \n";
    		}
    	}
    	else { // si ratio = 1
    		chmod($destination.$prefixePhoto.$image, 0775);
    		$result = "<p>la photo est au format, elle n'a pas &eacute;t&eacute; redimensionn&eacute;e.</p> \n <hr /> \n ";
    	}
    	echo $result;
    }

    Won't you please, please help me ? (The Beatles)

    Merci ...

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 23
    Points : 6
    Points
    6
    Par défaut
    ca ressemble beaucoup a mon probleme d'images aussi , j'ai le meme resultat (bandes grises ou images dont une partie est corrompu)

    vu comment se comporte mon serveur a priori ca ne vient pas du code , peut etre un probleme avec la version de php ( ?) gd (?) ou autre element du serveur (?) ram defectueuse (?) pour l'instant j'ai franchement aucune reponse a cela , je me suis contenté de mettre en place des processus de rafraichissement d'image redimensionnée

    une question, c'est "systematique" (vraiment a chaque fois) chez toi le probleme sur la deuxieme image ? parce que moi c'est uniquement de temps en temps (mais regulierement)

    http://www.developpez.net/forums/d92...s/#post5273236

Discussions similaires

  1. upload et redimensionnement d'image
    Par tim1789 dans le forum Langage
    Réponses: 2
    Dernier message: 20/06/2011, 09h52
  2. upload puis redimensionnement d'image limité à 2 Mo
    Par franckcl dans le forum Langage
    Réponses: 2
    Dernier message: 22/08/2010, 12h38
  3. Réponses: 1
    Dernier message: 18/01/2008, 16h18
  4. [Upload] Redimensionnement d'image uploader
    Par nicerico dans le forum Langage
    Réponses: 7
    Dernier message: 04/02/2007, 20h58
  5. [Upload] Redimensionner une image après upload
    Par putubudiarta dans le forum Langage
    Réponses: 2
    Dernier message: 14/01/2007, 12h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo