Prob avec fonction taille photo

Eléphant du PHP | 121 Messages

26 mars 2010, 21:52

Bonjour à tous,

J'ai un problème avec ma fonction pour réduire la taille de mes photos. J'ai tout le temps le même message d'erreur suivant :
erreur lors de la création de l'image
Le problème viens au moment de la création de l'image, mais je ne sais pas pourquoi ?

Voilà ma fonction:
<?php
//fonction pour modifier la taille des grandes images.
function taille_grand_photo($dir) {
//On ouvre le dossier images
    $handle  = opendir($dir);
//On parcoure chaque élément du dossier
    while ($file1 = readdir($handle))
        {
            //Si les fichiers sont des images
    if(preg_match ("!(\.jpg|\.jpeg|\.gif|\.bmp|\.png)$!i", $file1))
        {
         $listef = $file1;
//On calcule la largeur et la hauteur de l'image aléatoire
    $size = getimagesize($dir."/".$listef);
	//Largeur maximale de l'image pour la création des miniatures
    $largeur_maxi = 750;
    //Si la largeur dépasse la limite autorisée...
	    if ($size[0] > $largeur_maxi)
        {
            //...la nouvelle largeur est égale à la limite à ne pas dépasser
            $width = $largeur_maxi;
            //La largeur d'origine divisée par la largeur limitée (on obtient un chiffre qui sert à faire la même proportion pour la hauteur)
            $theight = ($size[0]/$largeur_maxi);
            //La hauteur originale est divisée par le chiffre obtenu précédemment afin que l'image conserve les mêmes proportions que l'originale (mais en mode vignette)
            $height = ($size[1]/$theight);
        }
    else
        {
            //Sinon on garde la taille originale
            $width = $size[0]; $height = $size[1];
        }
	// on crée une image vide	
$im=@imageCreateTrueColor($width,$height)or die ("erreur lors de la création de l'image");
	// on lit l'image existante 
	$source=imagecreatefromstring(file_get_contents($dir."/".$file1)); 
	
	// Redimensionne l'image
	imagecopyresampled(	$im,$source,0, 0, 0, 0,$width,$height,$size[0],$size[1]);
	// Enregistre la photo à la nouvelle dimention
   imageJpeg($im,($dir."/".$file1));
   // Détruit les ressources temporaires crées
	imagedestroy($im);
	imagedestroy($source);
 }
        }
    //On ferme le dossier
    closedir($handle);
	}
	
taille_grand_photo('grand/
Merci a celui qui pourra m'aider.

Eléphant du PHP | 428 Messages

26 mars 2010, 22:09

Essaye un peu avec :
if (function_exists(imagecreatetruecolor)){
echo 'IMAGE CREATE TRUE COLOR EXISTE EN TANT QUE FONCTION GD 2 <br />';
$im=@imageCreateTrueColor($width,$height)or die  ("erreur lors de la création de l'image");
die();
}

Eléphant du PHP | 121 Messages

26 mars 2010, 22:16

Voilà la réponse :
Notice: Use of undefined constant imagecreatetruecolor - assumed 'imagecreatetruecolor' in E:\wamp\www\Communparapente\club\photo\paraneige2010\install3.php  on line 32
IMAGE CREATE TRUE COLOR EXISTE EN TANT QUE FONCTION GD 2 
Comprends pas

Eléphant du PHP | 428 Messages

26 mars 2010, 22:18

C'est un début ... et voici la fin :
http://www.wampserver.com/phorum/read.php?2,50331

a+
raph

Eléphant du PHP | 121 Messages

26 mars 2010, 22:33

j'ai contrôlé mon fichier , il est juste.
; error_reporting
;   Default Value: E_ALL & ~E_NOTICE
;   Development Value: E_ALL | E_STRICT
;   Production Value: E_ALL & ~E_DEPRECATED
donc ce n'est pas ça

Eléphant du PHP | 428 Messages

26 mars 2010, 22:34

As tu vérifié que tu possède bien GD2 activé et non imagemagik ?
Que dises les logs de wamp ?

Eléphant du PHP | 121 Messages

26 mars 2010, 22:40

l'extention php_gd2 est cochée.

Donc normalement les paramètre son bon

Eléphant du PHP | 428 Messages

26 mars 2010, 22:43

Vérifie toujours si dans le php.ini l'extension GD2 est activée.
Je me méfie toujours des interfaces utilisateurs

Un truc du genre :
extension=php_gd2.dll

et pas :
;extension=php_gd2.dll

Eléphant du PHP | 428 Messages

26 mars 2010, 22:47

Edit : Augmente également memory_limit : 8Mb dans php_ini à 16Mb et teste à nouveau.

Eléphant du PHP | 121 Messages

26 mars 2010, 22:56

je pense que c'est un problème Wamp. Il y a rien a faire

Eléphant du PHP | 428 Messages

26 mars 2010, 22:59


Eléphant du PHP | 121 Messages

26 mars 2010, 23:14

rien a faire même avec ces changements . je me demande si je veux pas réinstaller

Eléphant du PHP | 428 Messages

26 mars 2010, 23:16

tant qu'à faire ... change pour easyphp ;)

ViPHP
ViPHP | 2287 Messages

27 mars 2010, 03:31

tant qu'à faire ... change pour easyphp ;)
Euh... non, pas d'accord là.

Le message quelques posts plus haut indique que GD2 est bien installé et fonctionne, ce n'est pas la cause du souci. Et je vois pas trop en quoi EasyPHP est plus recommandable que wamp (mon expérience indiquerait plutôt le contraire...).

@mars77 : quelle est la taille (largeur, hauteur) de l'image que tu essayes de créer lors du bug ?

Il faut savoir que travailler des images peut rapidement être TRES gourmand en mémoire... Donc si tu augmentes le memory_limit (ce qui est une très bonne chose à faire car 8Mo, la config par défaut de PHP, c'est vraiment juste...) alors vas-y franchement : n'hésite pas à mettre au minimum, ou dépasser, 32Mo, ton serveur doit pouvoir le faire sans problème non ? Sur tous mes serveurs de développement je tourne avec des valeurs autrement plus élevées, 256Mo par ex, donc tu peux vraiment y aller, tu ne vas rien casser :). Pense à bien redémarrer le serveur web pour prendre en compte la modification, et dis nous si ça change quelquechose.
Modifié en dernier par Calimero le 27 mars 2010, 03:34, modifié 1 fois.
if(!@work()){ Nespresso(); } else { what(); }
______________________________

ViPHP
ViPHP | 5462 Messages

27 mars 2010, 03:32

j'ai contrôlé mon fichier , il est juste.
; error_reporting
;   Default Value: E_ALL & ~E_NOTICE
;   Development Value: E_ALL | E_STRICT
;   Production Value: E_ALL & ~E_DEPRECATED
donc ce n'est pas ça
mais non ca les commentaires pour t'expliquer :lol:
la valeur est plus bas