begin process at 2012 05 28 23:06:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Fatal error: Allowed memory size


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fatal error: Allowed memory size

mardi 8 janvier 2008 à 17:32:11 | Fatal error: Allowed memory size

LiTtLeBuBu

Bonjour à tous,

J'ai un code qui crée des miniatures après upload des photos. Quand j'envoi des photos de 400ko environ il n'y a aucun soucis mais lorsque les photos ont un poids de 1MO et plus il y a problème "Fatal error: Allowed memory size......"

Voici le code qui crée les miniatures:

<?php

function createthumb($name,$filename,$new_w,$new_h){
 $system=explode('.',$name);
 if (preg_match('/jpg|jpeg|JPG|JPEG/',$system[1])){
  $src_img=imagecreatefromjpeg($name);
 }
 if (preg_match('/png/',$system[1])){
  $src_img=imagecreatefrompng($name);
 }

$old_x=imageSX($src_img);
$old_y=imageSY($src_img);
if ($old_x > $old_y) {
 $thumb_w=$new_w;
 $thumb_h=$old_y*($new_h/$old_x);
}
if ($old_x < $old_y) {
 $thumb_w=$old_x*($new_w/$old_y);
 $thumb_h=$new_h;
}
if ($old_x == $old_y) {
 $thumb_w=$new_w;
 $thumb_h=$new_h;
}

$dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
 imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);

if (preg_match("/png/",$system[1]))
{
 imagepng($dst_img,$filename);
} else {
 imagejpeg($dst_img,$filename);
}
imagedestroy($dst_img);
imagedestroy($src_img);
}

?>

et ce qu'il y a dans ma page pour 6 photos donc ce code 6 fois de suite:

<?php

if (empty($dest_fichier1))
    {
    $photo1 = "default.jpg";  
    }
    else
    {
    $photo1 = $dest_fichier1;
   createthumb($dest_dossier . $dest_fichier1, $dossier_thumbs . $dest_fichier1, $taille_thumbs1, $qualite_thumbs1);
    createthumb($dest_dossier . $dest_fichier1, $dossier_final . $dest_fichier1, $taille_thumbs2, $qualite_thumbs2);
   unlink($dest_dossier . $dest_fichier1);
   }
?>

Quelles sont les solutions ?

D'avance merci.

mardi 8 janvier 2008 à 18:26:59 | Re : Fatal error: Allowed memory size

malalam

Administrateur CodeS-SourceS
Hello,

travailler sur de plus petites images...
Non, GD est gourmand de toute manière. On est sur une techno web là, il ne faut pas l'oublier, c'est pas Photoshop ton truc. Faut pas trop lui en demander.
Seule solution à part ça : modifier la conf de php si tu le peux. Il s'agit de cette directive :
memory_limit
tu peux la modifier dans le php.ini, ou via un ini_set().
SI ton hébergement te le permet...

mardi 8 janvier 2008 à 18:40:33 | Re : Fatal error: Allowed memory size

coucou747

Administrateur CodeS-SourceS
mon appareil fait des photos de : 3072 * 2304

multiplie par 3 pour avoir des couleurs 24 bits

une fois decompresse, mon jpeg prend :

3072 * 2304 * 3 octets de memoire

>>> 3072 * 2304 * 3
21233664
>>> 21233664 / 1024
20736
>>> 21233664 / 1024 / 1024
20
>>>

ca fait en gros 20 MO de memoire

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
mardi 8 janvier 2008 à 19:26:22 | Re : Fatal error: Allowed memory size
mardi 8 janvier 2008 à 19:28:25 | Re : Fatal error: Allowed memory size

malalam

Administrateur CodeS-SourceS
Mon "et?" n'est pas "méchant" hein, c'est juste que je n'ai pas compris où tu voulais en venir en disant ça ?
mardi 8 janvier 2008 à 19:37:09 | Re : Fatal error: Allowed memory size

coucou747

Administrateur CodeS-SourceS
c'est juste pour donner un ordre d'idee de ce qui consome GD

perso j'ai :

max@debian:~$ cat /etc/php5/apache2/php.ini | grep memory_limit
memory_limit = 128M      ; Maximum amount of memory a script may consume (128MB)
max@debian:~$

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/
mardi 8 janvier 2008 à 19:56:00 | Re : Fatal error: Allowed memory size

malalam

Administrateur CodeS-SourceS
Ben essaye de travailler ton image avec GD et ce php.ini. Tu n'y arriveras pas.
Prend n'importe quel logiciel de retouche photo, fous lui une image de 20Mo, bosse dessus et regarde tes ressources CPU et la mémoire utilisée surtout. C'est exponentiel. Une image de 20Mo ne prend pas 20Mo de mémoire pour travailler dessus. Ce sera beaucoup plus gourmand.
mardi 8 janvier 2008 à 20:01:46 | Re : Fatal error: Allowed memory size

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
Et puis à la limite si tu parviens à travailler sur une image comme ça, tu n'y arriveras pas sur plusieurs en boucle.
Normal...PHP ne libèrera pas les ressources correctement ni complètement.

mardi 8 janvier 2008 à 20:03:30 | Re : Fatal error: Allowed memory size

LiTtLeBuBu

Si je comprends bien je peux mettre

ini_set("memory_limit", "128M")

Celà fonctionne t-il en safe mode ?

mardi 8 janvier 2008 à 20:05:24 | Re : Fatal error: Allowed memory size

LiTtLeBuBu

D'accord donc la seule solution c'est de les réduire avant.

D'accord merci.

1 2

Cette discussion est classée dans : img, dest, thumb, old, if


Répondre à ce message

Sujets en rapport avec ce message

pbm de fonction [ par jphilippev ] bonjour et bonne année mon soucis --> if (!empty($dest_fichier)) { fun Xml par ordre alphabétique [ par f0nzy ] Salut, J'ai un code php qui génère un fichier xml, mais les résultats s'affichent dans un ordre aléatoire, hors j'aimerais trier les données dans un Affichage de mes images aprés redimension [ par boubeuch1 ] Bonjour, Je viens d'effectuer une fonction pour me permettre de redimensionner mes photos afin de les afficher dans une galerie Jquery qui possède de Affichage de mes images aprés redimension en php [ par boubeuch1 ] Bonjour, Je viens d'effectuer une fonction pour me permettre de redimensionner mes photos afin de les afficher dans une galerie Jquery qui possède de Custum plugging présentation de photos en full background [ par donzus ] Bonjour, je cherche à transformer le pluging suivant: "Djuve" (Système de présentation d'images avec vignettes) voici un exemple de ce pluging: ex ( Redimensionner une image en 200 par 200 [ par samt01 ] Bonjour à tous, j'aimerais redimensionner mes images si la largeur ou la longueur est supérieur à 200 px. J'aimerais les redimensionner en maximum 2 [BAR]Recherchons Dev Web pour aide à la conception d'un Fansite en cours [ par Lineka ] Salutations à tous / toutes [^^clinoeil1] [center][img]http://img697.imageshack.us/img697/3000/recrutement2.jpg[/img][/center] [b]Sujet[/b] [img]htt random Visual Index correction plugging [ par donzus ] Bonjour, dernière petite aide... c'est toujours un peu génant de bombarder de questions... J'utilise un pluging (random Visual Index) permettant d'i verification de formulaire et envoi dans bbd [ par lorant59 ] bonjour, j ai comme erreur Fatal error: Call to undefined function: filter_var() in je suis chez free j ai renommer le fichier en .php5 toujours la


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales