Page 1 sur 1

Problème de mémoire avec GD2

Posté : 03 nov. 2008, 14:09
par chatlumo
Bonjour,

J'ai un script utilisant la librairie GD2 et qui fait :

Code : Tout sélectionner

$src_im = imagecreatefromjpeg( $img_url );
Hors avec une image j'obtiens le message d'erreur suivant :
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 10240 bytes) in /home/machin/www/e_lib/redimimage.php on line 15

Avez-vous une idée du pourquoi ?

Merci.

Posté : 03 nov. 2008, 15:28
par zeus
Le serveur que tu utilises limite l'utilisation mémoire de chaque script PHP à 16Mo (soit 16777216o).
ton erreur signifie que ton script a essayé d'allouer 10240 octets en plus, ce qui a fait que la somme totale à dépassée 16Mo et a donc déclenché une erreur.

Pour changer ça, essaye de faire une nouvelle page PHP blanche qui ne contient que le code suivant :
<?php
echo "Avant :". ini_get('memory_limit') ."<br />";
ini_set('memory_limit', 128M);
echo "Après :". ini_get('memory_limit') ."<br />";
Et donne nous le résultat.

Si tu as un changement, il est possible de modifier cette taille limite et la changer pour ce script. Si tu as les mêmes valeurs avant et après, ton hébergeur ne permet pas de modifier ces valeurs et tu ne pourras pas faire ton traitement d'image.

Si ton serveur est un serveur dédié, il existe une autre solution, mais j'attend que tu me le confirme, car une configuration par défaut à 16M me parrait très très basse.

Posté : 03 nov. 2008, 15:33
par chatlumo
Ok merci, je pensais que ça signifiait 10240 octets en tout d'où mon incompréhension.
J'ai donc changé memory_limit à 32 Mo et ça fonctionne.

Merci !

Posté : 03 nov. 2008, 15:41
par zeus
Modération :
chatlumo, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.