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] Redimensionnement auto


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 77
    Points : 57
    Points
    57
    Par défaut [GD] Redimensionnement auto
    Bonjour,

    pour retailler directement des photos mises sur le serveur ftp par le client j'ai écris le code ci-dessous. Tout ceci marche très bien en local, cependant en ligne (avec l'hébergement mutualisé 1and1), l'erreur : "Erreur 500: erreur interne du serveur!Une erreur interne du serveur est survenue." apparaît et toutes mes images n'ont pas été remodifiées.

    Je pensais que le temps d'execution devait être trop long mais vu les paramètres de phpinfo() ça ne devrait pas poser de problèmes.

    J'ai essayé aussi de mettre imagecopyresized à la place de imagecopyresampled, dans ce cas il me modifie plus d'images mais pas toutes encore et j'ai encore l'erreur 500....

    Information phpinfo() du serveur :
    max_execution_time : 50000
    max_input_time : -1

    Le langage : PHP5
    Base de données : Mysql.


    Methode de redimensionnement des images

    Code : 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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    // Script de redimensionnement des images
     
    function controle_resize_image($rep, $nom_image, $max, $rep_vignette)
    {			
     
           // test de la présence du fichier
    	$info = getimagesize($rep.$nom_image);
    	switch ($info[2])
    	{		
    	        case 1 : $src_img = imagecreatefromgif($rep.$nom_image);
             	break;
     
    		case 2 : $src_img = imagecreatefromjpeg($rep.$nom_image);
    		break;
     
    		case 3 : $src_img = imagecreatefrompng($rep.$nom_image);
    		break;				
    	}
     
    	if($max != '')
    	{
    		// Dans le cas ou l'image à une taille inférieure au max
    		if (($info[0] && $info[1]) < $max) 
    		{
    			$ratio = 1;
    		}
    		elseif($info[0] or $info[1] > $max)
    		{
    			if($info[0] > $info[1])
    			{
    	            		$ratio = $max/$info[0];
    			}
    			else
    			{
    				$ratio = $max/$info[1];
    			}
     
    		}
    		/*$dimension[0] = $info[0]*$ratio;
    		$dimension[1] = $info[1]*$ratio;*/
    	}
    	else 
    	{
     	        $ratio = 1;
    	}
    	$dimension[0] = $info[0]*$ratio;
    	$dimension[1] = $info[1]*$ratio;
     
    	$dst_img = imagecreatetruecolor($dimension[0], $dimension[1]);
    			imagecopyresampled($dst_img,$src_img,0,0,0,0,$dimension[0],$dimension[1],$info[0],$info[1]);
     
     
    	switch ($info[2])
    	{		
    		case 1 : imagegif($dst_img,$rep_vignette.$nom_image,100); 
    		break;
     
    		case 2 : imagejpeg($dst_img,$rep_vignette.$nom_image,100);
    		break;
     
    		case 3 : imagepng($dst_img,$rep_vignette.$nom_image,100);
    		break;				
    	}		
     
     
    	imagedestroy($dst_img);
    	imagedestroy($src_img);				
    }
    Et le fichier qui appelle la méthode pour redimensionner les images.
    Code : 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
    35
    36
     
    // Traitement des photos pour les produits
     
    require_once('include/controle.class.php5');
    require_once('include/DB.class.php5');
     
    	$sql = new sql_connect();
    	$sql->sql_connect_connectDB();
    	$rep = '../images/photos_produits/';
     
    	$controle = new controle();
     
    // Calcul du nombre de produits
    	$sqlQuery = "Select artic_photo from articles";	
    	$result = $sql->sql_connect_select($sqlQuery);
     
     
    		foreach ($result as $key =>$value) 
    		{	
    			$photo = $value['artic_photo'];	
    			if (file_exists($rep.$photo))
    			{
    					$controle->controle_resize_image($rep,$photo,100,'../images/photos_produits/images_retaillees/');
    					$controle->controle_resize_image($rep,$photo,160,'../images/photos_produits/images_details/');
     
    				$info = getimagesize($rep.$photo);
    				if($info [0] > 600 || $info[1] > 600)
    				{
    						$controle->controle_resize_image($rep,$photo,600,'../images/photos_produits/images_agrandies/');
    				}
    				else 
    				{
    						$controle->controle_resize_image($rep,$photo,'','../images/photos_produits/images_agrandies/');
    				}	
    			}
    		}

  2. #2
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Est-tu sur que ton hébergeur a installé les eventuelles extensions PHP dont tu aurais besoin ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 77
    Points : 57
    Points
    57
    Par défaut
    oui puisque le script passe et dans le phpinfo() la librairie Gd est installée.

    j'ai les droits sur tous les dossiers aussi.

    En fait, toute la procédure passe 3 à 4 fois puis ça plante...

  4. #4
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Personnellement je ne vois pas ce qui pourrait provoquer une erreur 500... le problème doit venir d'une autre portion de code... .. .

    @ tchaOo°

  5. #5
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    mmmh, peut être un problème de saturation de la mémoire ou de la bd, voir une histoire de boucle infinie ....
    c'est difficile à dire, j'ai peur de ne pas pouvoir t'être d'un grand secours.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 77
    Points : 57
    Points
    57
    Par défaut
    j'ai essayé sans accès à la base de données ça plante encore par contre

    si je mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imagecopyresampled($dst_img,$src_img,0,0,0,0,$dimension[0],$dimension[1],$info[0],$info[1]);
    en commentaire ça passe. je vois pas pourquoi cette fonction pause problème et tout marche en local

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 77
    Points : 57
    Points
    57
    Par défaut
    donc je viens de tester sur ovh le script marche... reste plus qu'a contacter 1and1 ça doit venir de la configuratin d'apache je suppose. Merci pour les réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Java2D + Redimensionnement auto]JScrollPane
    Par Pollux dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 03/08/2006, 09h58
  2. Redimensionnement auto d'une image
    Par Rcanada dans le forum Access
    Réponses: 3
    Dernier message: 12/06/2006, 10h27
  3. [HTML][CSS]Probleme de redimensionnement auto avec IE
    Par NikoRFR dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 17/04/2006, 19h56
  4. [C#] Redimensionnement auto pop up avec datagrid
    Par kalan dans le forum ASP.NET
    Réponses: 2
    Dernier message: 04/08/2005, 08h51
  5. [JLabel] Redimensionnement auto non désiré
    Par SamRay1024 dans le forum Agents de placement/Fenêtres
    Réponses: 11
    Dernier message: 21/05/2004, 18h13

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