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 :

[ImageMagick] imageCreateFromJpeg bouffe de la mémoire


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de sami_c
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Mai 2002
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 766
    Par défaut [ImageMagick] imageCreateFromJpeg bouffe de la mémoire
    salut,
    j'ai trouvé une fonction de redimensionnement d'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
     
    function imageResize_h($src,$dest,$maxWidth,$maxHeight,$quality=100) 
    { 
    	if (file_exists($src) && isset($dest)) { 
    	// path info 
    	$destInfo = pathInfo($dest); 
     
    	// image src size 
    	$srcSize = getImageSize($src); 
     
    	// image dest size $destSize[0] = width, $destSize[1] = height 
    	$srcRatio = $srcSize[0]/$srcSize[1]; // width/height ratio 
    	$destRatio = $maxHeight/$maxWidth; 
    	if ($destRatio > $srcRatio) 
    	{ 
    		$destSize[1] = $maxHeight; 
    		$destSize[0] = $maxHeight*$srcRatio; 
    	} 
    	else 
    	{ 
    		$destSize[0] = $maxWidth; 
    		$destSize[1] = $maxWidth/$srcRatio; 
    	} 
     
    	// path rectification 
    	if ($destInfo['extension'] == "gif") { 
    	$dest = substr_replace($dest, 'jpg', -3); 
    	} 
     
    	$destImage = imageCreateTrueColor($destSize[0],$destSize[1]); 
    SPL :(
     
    	// src image 
    	switch ($srcSize[2]) { 
    	case 1: //GIF 
    	$srcImage = imageCreateFromGif($src); 
    	break; 
     
    	case 2: //JPEG 
    	$srcImage = imageCreateFromJpeg($src); 
    	break; 
     
    	case 3: //PNG 
    	$srcImage = imageCreateFromPng($src); 
    	break; 
     
    	default: 
    	return false; 
    	break; 
    	}
    en testant sur un serveur web (compte mutu chez un hebergeur payant) avec de petites images ça passe, mais avec un jpg de 1,6 mo (résolution : 2048x1536) et j'ai eu ce message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 8192 bytes) in /home/web/inc/util.inc.php on line 385
    PS : la ligne 385 correspond à l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $srcImage = imageCreateFromJpeg($src);
    sachant que j'ai aucun accès au serveur, et je peux pas ajouter de la mémoire, est-ce qu'on peut optimiser la fonction ? et comment ?

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Essaie de mettre la ligne suivante dans un .htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php_value memory_limit "64M"

  3. #3
    Membre éclairé Avatar de sami_c
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Mai 2002
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 766
    Par défaut
    où dois-je mettre ce fichier ? dans quel dossier ?

  4. #4
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    à côté de ton index.php (ou le fichier appelé par le navigateur)
    peut-etre à la racine...

    C'est une suggestion, c'est pas sur que ton hébergeur t'autorise à bouffer plus de memoire que tu ne devrais. Mais bon, qui ne tente rien n'a rien

  5. #5
    Membre éclairé Avatar de sami_c
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Mai 2002
    Messages
    766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 766
    Par défaut
    waoo ça a marché
    mais je trouve ça assez bizarre : le script n'a pas fonctionné au début à cause d'un manque de mémoire, alors on force le serveur à en donner plus...c'est bizarre que l'hebergeur laisse ce genre de truc actifs !!!! sinon pourquoi il impose une limite ???!!

  6. #6
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Je sais pas. A toi de lui demander

    Par contre si tu veux pas te faire allumer, n'augmente pas à 64M, tu n'en as pas besoin. Limite toi à 20M-24M c'est plus raisonable...

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

Discussions similaires

  1. [ImageMagick] imagecreatefromjpeg limité à des photos de 2400 pixels
    Par tel22 dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 20/10/2010, 16h56
  2. rtorrent me bouffe toute la mémoire
    Par TocTocKiéLà? dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 28/12/2008, 12h46
  3. [ImageMagick] imagecreatefromjpeg et path
    Par elkion dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 07/12/2006, 17h48
  4. [ImageMagick] imagecreatefromjpeg() ne fonctionne pas avec tous mes jpg
    Par guy2004 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 23/08/2006, 09h41
  5. mysql bouffe de la place en mémoire !
    Par iubito dans le forum Installation
    Réponses: 9
    Dernier message: 05/11/2003, 16h01

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