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

Langage PHP Discussion :

[gd2] alleger travail serveur


Sujet :

Langage PHP

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

    Informations forums :
    Inscription : Février 2005
    Messages : 81
    Points : 48
    Points
    48
    Par défaut [gd2] alleger travail serveur
    bonjour,
    j'utilise un script pour miniaturiser automatiquement une image uploadée.
    mon site est hébergé sur un serveur mutualisé.
    la librairie gd2 doit etre activée.
    lors de mon test, une image 1400x1049 est miniaturisée alors qu'une image 1500x1124 créé l'erreur suivante :

    Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 6000 bytes) in fonctions.php on line 5

    voici mon script :

    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
     
    function miniaturise($rep, $nomFichier)
    {
    	$fichierSource = $rep.$nomFichier;
     
    	$source = ImageCreateFromJpeg($fichierSource);
     
    	$largeurSource = imagesx($source);
    	$hauteurSource = imagesy($source);
     
    	$hauteurDestination = 150;
    	$coeff = $hauteurSource / $hauteurDestination;
     
    	$largeurDestination = round($largeurSource / $coeff, 0);
     
    	$im = ImageCreateTrueColor($largeurDestination, $hauteurDestination) or die("Erreur lors de la création de l'image");
     
    	ImageCopyResampled($im, $source, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $largeurSource, $hauteurSource);
     
    	// ajout de _small au nom de la photo et affichage
    	$nom_img = strrpos($fichierSource, "/");
    	$nom_img2 = substr_replace($fichierSource, '', 0, $nom_img+1);
    	$array_name = explode(".",$nom_img2);
    	$miniature = $array_name[0].TYPE_IMG.".".$array_name[count($array_name)-1];
     
    	ImageJpeg($im, $rep.$miniature);
    }
    quelqu'un saurait comment alleger le travail du serveur en modifiant le script pour permettre d'uploader des images plus volumineuses?
    car je ne peux pas controler la pixellisation des images lors de l'upload pour filtrer l'upload : soit ca miniaturise, soit ca affiche une erreur.
    Merci d'avance.

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    si tu as UNE seule image dans ton script, tu n'as pas d'autres solutions que de refuser des images trop grandes a l'upload... ou modifier la config de php, mais je doute que tu puisse ;o)

    si tu as plusieurs images, n'oublie pas de faire des imagedestroy pour liberer la mémoire au fur et a mesure.

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

    Informations forums :
    Inscription : Février 2005
    Messages : 81
    Points : 48
    Points
    48
    Par défaut
    à quel endroit j'insere imagedestroy stp?

  4. #4
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    le plus tot possible, dès que tu n'a plus besoin de l'image. mais ca ne sert a rien si ton script ne traite qu'UNE SEULE image (a part liberer proprement la mémoire a la fin, mais ton script s'interrompt avant de toute facon)

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/08/2014, 10h14
  2. Réponses: 1
    Dernier message: 01/10/2009, 14h03
  3. Poste de travail / Serveur
    Par damien77 dans le forum Windows Serveur
    Réponses: 7
    Dernier message: 11/02/2009, 15h45
  4. Calcul miniatures GD2 : serveur écroulé
    Par Guillaume.G dans le forum Administration système
    Réponses: 8
    Dernier message: 09/09/2008, 13h03
  5. qui fait le travail ? serveur ou client??
    Par lykim dans le forum Applets
    Réponses: 31
    Dernier message: 16/05/2006, 16h58

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