=?ISO-8859-15?Q?Probl=E8me_de_consommation_m=E9moire_avec_imagecreatefromjpeg=28=29?=

This is a discussion on =?ISO-8859-15?Q?Probl=E8me_de_consommation_m=E9moire_avec_imagecreatefromjpeg=28=29?= within the PHP Français (alt.fr.comp.lang.php) forum.

=?ISO-8859-15?Q?Probl=E8me_de_consommation_m=E9moire_avec_imagecreatefromjpeg=28=29?=

Postby Yodaz on Sun Nov 09, 2008 3:40 pm

Bonjour,

Je teste mon script de génération de miniatures, et je rencontre de gros
problèmes de consommation mémoire.
Mon hébergeur est Free, et la limite de consommation mémoire est fixée à 32M
chez cet hébergeur.
A chaque fois que j'essaie de générer une miniature avec le code ci-dessous,
j'ai systématiquement une erreur de type "Fatal error: Allowed memory size
of 33554432 bytes exhausted".

L'erreur se produit au niveau de l'appel à la fonction
imagecreatefromjpeg().

Mes images ont une taille variable entre 2 et 3,5Mo. Vu que la limite est
fixée à 32Mo, je ne comprends pas pourquoi j'ai l'erreur. Est ce que mon
script comporte une erreur ? Est ce que mon appel a imagecreatefromjpeg()
est correct ?

J'ai également essayé de convertir l'image jpeg en wbmp en utilisant
jpeg2wbmp() en redimensionnant à la volée, mais l'erreur se produit quand
même (cette fois au niveau de l'appel à jpeg2wbmp()).

Existe t-il une solution de contournement pour mon problème (plus de 32M de
mémoire utilisé pour une image de 2M me parait quand même beaucoup) ?

Merci d'avance pour vos réponses.

///////////////////////////////////////////////////////////////////////////
    function thumbnailize($img)
    {
        $thumb="";
        if (file_exists($img))
        {
            $imgInfo = getimagesize($img);
            $imgWidth=$imgInfo[0];
            $imgHeight=$imgInfo[1];
            $imgType=$imgInfo['mime'];

             // $imgInfo[2] -> image type 2 = JPG,JPEG
            if ($imgInfo[2] == 2)
            {
                // check image format is jpeg
                $imgSrc=imagecreatefromjpeg($img);

                // source image must be larger than destination image
                if ( ($imgWidth > THUMB_WIDTH) || ($imgHeight >
THUMB_HEIGHT) )
                {
                        // if width larger than height
                        if ($imgHeight <= $imgWidth)
                        {
                            $ratio = THUMB_WIDTH / $imgWidth;
                        }
                        else
                        {
                            $ratio = THUMB_HEIGHT / $imgHeight;
                        }
                }
                else
                {
                    $ratio = 1;  // same as original
                }

                $thumb = imagecreatetruecolor(round($imgWidth * $ratio),
round($imgHeight*$ratio));
                imagecopyresampled($thumb
$imgSrc,0,0,0,0,round($imgWidth*$ratio),round($imgHeight*$ratio),$imgWidth
$imgHeight);
                imagedestroy($imgSrc);

                // Send image file to browser
                imageinterlace($thumb);
                header('Content-Type: ' . $imgType);
                imagejpeg($thumb, NULL, THUMB_QUALITY);
                imagedestroy($imgLow);
                imagedestroy($thumb);
            }
        }
    }
///////////////////////////////////////////////////////////////////////////
Yodaz
 
Posts: 6
Joined: Wed Jun 25, 2008 11:52 am

Re: =?ISO-8859-15?Q?Probl=E8me_de_consommation_m=E9moire_?= =?ISO-8859-15?Q?avec_imagecreatefromjpe

Postby Mr Prout ! on Tue Nov 18, 2008 7:13 am

La nouvelle vedette du web, yodaz, a écrit :
> Bonjour,
>
> Je teste mon script de génération de miniatures, et je rencontre de gros
> problèmes de consommation mémoire.
> Mon hébergeur est Free, et la limite de consommation mémoire est fixée à 32M
> chez cet hébergeur.
> A chaque fois que j'essaie de générer une miniature avec le code ci-dessous,
> j'ai systématiquement une erreur de type "Fatal error: Allowed memory size
> of 33554432 bytes exhausted".
>
> L'erreur se produit au niveau de l'appel à la fonction
> imagecreatefromjpeg().
>
> Mes images ont une taille variable entre 2 et 3,5Mo. Vu que la limite est
> fixée à 32Mo, je ne comprends pas pourquoi j'ai l'erreur. Est ce que mon
> script comporte une erreur ? Est ce que mon appel a imagecreatefromjpeg()
> est correct ?
>
> J'ai également essayé de convertir l'image jpeg en wbmp en utilisant
> jpeg2wbmp() en redimensionnant à la volée, mais l'erreur se produit quand
> même (cette fois au niveau de l'appel à jpeg2wbmp()).
>
> Existe t-il une solution de contournement pour mon problème (plus de 32M de
> mémoire utilisé pour une image de 2M me parait quand même beaucoup) ?
>
> Merci d'avance pour vos réponses.


Salut, tu peux essayer d'augmenter la taille du memory_limit comme ceci :

ini_set('memory_limit' , '96M');

Mais bon, c'est pas garanti chez Free... :-(
@+

--
Retrouvez et triez toutes les adresses emails éparpillées dans vos
documents, sites web, FTP, etc... en un clic !
http://www.tictacmail.com/
Mr Prout !
 
Posts: 164
Joined: Mon Oct 30, 2006 2:51 am

Re: Problème de consommation mémoire avec imagecreatefromjpeg()

Postby Philg42 on Sun Nov 30, 2008 5:19 am


"yodaz" a écrit dans le message de news:
491766ca$0$28061$426a74cc@news.free.fr...
> Bonjour,
>
> Je teste mon script de génération de miniatures, et je rencontre de gros
> problèmes de consommation mémoire.
> Mon hébergeur est Free, et la limite de consommation mémoire est fixée à
> 32M
> chez cet hébergeur.
> A chaque fois que j'essaie de générer une miniature avec le code
> ci-dessous,
> j'ai systématiquement une erreur de type "Fatal error: Allowed memory size
> of 33554432 bytes exhausted".
>
> L'erreur se produit au niveau de l'appel à la fonction
> imagecreatefromjpeg().
>
> Mes images ont une taille variable entre 2 et 3,5Mo. Vu que la limite est
> fixée à 32Mo, je ne comprends pas pourquoi j'ai l'erreur. Est ce que mon
> script comporte une erreur ? Est ce que mon appel a imagecreatefromjpeg()
> est correct ?
>
> J'ai également essayé de convertir l'image jpeg en wbmp en utilisant
> jpeg2wbmp() en redimensionnant à la volée, mais l'erreur se produit quand
> même (cette fois au niveau de l'appel à jpeg2wbmp()).
>
> Existe t-il une solution de contournement pour mon problème (plus de 32M
> de
> mémoire utilisé pour une image de 2M me parait quand même beaucoup) ?
>
> Merci d'avance pour vos réponses.
>
> ///////////////////////////////////////////////////////////////////////////
> function thumbnailize($img)
> {
> $thumb="";
> if (file_exists($img))
> {
> $imgInfo = getimagesize($img);
> $imgWidth=$imgInfo[0];
> $imgHeight=$imgInfo[1];
> $imgType=$imgInfo['mime'];
>
> // $imgInfo[2] -> image type 2 = JPG,JPEG
> if ($imgInfo[2] == 2)
> {
> // check image format is jpeg
> $imgSrc=imagecreatefromjpeg($img);
>
> // source image must be larger than destination image
> if ( ($imgWidth > THUMB_WIDTH) || ($imgHeight >
> THUMB_HEIGHT) )
> {
> // if width larger than height
> if ($imgHeight <= $imgWidth)
> {
> $ratio = THUMB_WIDTH / $imgWidth;
> }
> else
> {
> $ratio = THUMB_HEIGHT / $imgHeight;
> }
> }
> else
> {
> $ratio = 1; // same as original
> }
>
> $thumb = imagecreatetruecolor(round($imgWidth * $ratio),
> round($imgHeight*$ratio));
> imagecopyresampled($thumb
> $imgSrc,0,0,0,0,round($imgWidth*$ratio),round($imgHeight*$ratio),$imgWidth
> $imgHeight);
> imagedestroy($imgSrc);
>
> // Send image file to browser
> imageinterlace($thumb);
> header('Content-Type: ' . $imgType);
> imagejpeg($thumb, NULL, THUMB_QUALITY);
> imagedestroy($imgLow);
> imagedestroy($thumb);
> }
> }
> }
> ///////////////////////////////////////////////////////////////////////////
Te casse pas la tête.
Tu va chez ovh, un start 1go coute environ 12 euros par an avec nom de
domaine, hégergement et une adresse mail.
Free, c'ETAIT bien;
cordialement


Philg42
 
Posts: 155
Joined: Thu Apr 22, 2004 10:59 am

=?iso-8859-1?Q?Re:_Probl=E8me_de_consommation_m=E9moire_avec_imagecreatef?= =?iso-8859-1?Q?romjpeg=

Postby SuperG2 on Sat Dec 06, 2008 11:49 am

Moue mais ils bloquent la fontion mail :'(

Je n'arrive pas a envoyer de mailing.

>> ///////////////////////////////////////////////////////////////////////////
> Te casse pas la tête.
> Tu va chez ovh, un start 1go coute environ 12 euros par an avec nom de
> domaine, hégergement et une adresse mail.
> Free, c'ETAIT bien;
> cordialement

SuperG2
 
Posts: 69
Joined: Sat Aug 11, 2007 8:55 am

Re: Problème de consommation mémoire avec imagecreatefromjpeg()

Postby Philg42 on Mon Dec 08, 2008 1:54 pm


"SuperG2" a écrit dans le message de
news: 493ac953$0$28668$7a628cd7@news.club-internet.fr...
> Moue mais ils bloquent la fontion mail :'(
>
> Je n'arrive pas a envoyer de mailing.
Qui quoi?
Fonction mail bloquée chez OVH????
Tu spam? Alors la Ok.
Par contre, si tu envoie des mailings a des adresses identifiées, il n'y a
aucun pbs.
Cordialement.


Philg42
 
Posts: 155
Joined: Thu Apr 22, 2004 10:59 am


Return to PHP Français (alt.fr.comp.lang.php)

Who is online

Users browsing this forum: No registered users and 0 guests