redimensionnement d'images et sauvegarde

Eléphanteau du PHP | 14 Messages

12 févr. 2005, 17:10

Bonjour

Je souhaite récuperer une image envoyé par un utilisateur via un formulaire,
le problème est que de nombreux messages d'erreur s'affichent, j'ai pourtant "repris" un script du livre PHP5 avancé.

Voici les erreurs:

Code : Tout sélectionner

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in j:\www\project\sethsatan\add.inc.php on line 22 Warning: imagecopyresampled(): supplied argument is not a valid Image resource in j:\www\project\sethsatan\add.inc.php on line 24 Warning: Cannot modify header information - headers already sent by (output started at j:\www\project\sethsatan\add.inc.php:22) in j:\www\project\sethsatan\add.inc.php on line 26 Warning: imagejpeg(): supplied argument is not a valid Image resource in j:\www\project\sethsatan\add.inc.php on line 30 Warning: imagejpeg(): supplied argument is not a valid Image resource in j:\www\project\sethsatan\add.inc.php on line 31 Warning: imagedestroy(): supplied argument is not a valid Image resource in j:\www\project\sethsatan\add.inc.php on line 34
et voici le code:
/*******************/
		//manipulation image
		/*******************/
		//recuperation de l'image envoyé via la superglobale
		$img = imagecreatefromjpeg ($tmp_name);

		//taille de limage
		$size = getimagesize($tmp_name);
		//largeur de limage
		$larg = $size[0];
		//longueur de limage
		$long = $size[1];
		//redimensionnement
		$newlarg = $larg*20/100;
		$newlong = $long*20/100;
		//image de destination
		$$img_dest = imagecreatetruecolor($newlarge,$newlong);
		//create new image
		$copy = imagecopyresampled($img_dest,$img,0,0,0,0,$newlarg,$newlong,$larg,$long);
		// type de fichier
		header('Content-Type: image/jpeg');
		//nom du fichier
		$fichier = $name;
		//envoi de limage
		imagejpeg($img_dest);
		imagejpeg($img_dest,'apercu/'.$fichier);
		imagejpeg($img,'photos/'.$fichier);
		//liberer la memoire
		imagedestroy($img_dest);
		/***********************/
		//fin manipulation image
		/***********************/
j'ai pourtant activé l'extension gd2 dans php.ini
et rien a faire, j'ai tout ces messages d'erreur...

a oui pour finir, la variable $img (l'image non redimensionné) me renvoie: "Resource id #6" ...

si quelqu'un peut m'aider s'il vous plait!

merci d'avance
Un ordinateur ne fait que ce qu'on lui dit de faire

Mammouth du PHP | 1311 Messages

12 févr. 2005, 17:20

tu peut pas redimenssioner l'image comme tu la fait il faut passer par
imageSX() et imageSX()
        $img = imagecreatefromjpeg ($tmp_name);

        //taille de limage
        $size = getimagesize($tmp_name);
        //largeur de limage
        $lag=ImageSX($size);
        //longueur de limage
        $long = ImageSX($size);
        //redimensionnement
        $newlarg = $larg*20/100;
        $newlong = $long*20/100;
        //image de destination
        $img_dest = imagecreatetruecolor($newlarge,$newlong);
ca sa devrait fonctionner

Eléphanteau du PHP | 14 Messages

12 févr. 2005, 17:25

euh.. merci de ton aide,
mais apparament il y a encore plus d'erreur...
donc ca marche toujours pas...
Un ordinateur ne fait que ce qu'on lui dit de faire

ViPHP
ViPHP | 2144 Messages

12 févr. 2005, 17:30

Pourrais-tu nous montrer les erreurs et le code complêt de ta page ?

Eléphanteau du PHP | 14 Messages

12 févr. 2005, 17:31

c'est exactement ce que j'ai mis dans le premier post...
Un ordinateur ne fait que ce qu'on lui dit de faire

Mammouth du PHP | 1311 Messages

12 févr. 2005, 17:32

je crois avoir trouver
imagecreatetruecolor()
doit avoir des parametres de type int
il faut lui specifier la taille en pixel

ViPHP
ViPHP | 2144 Messages

12 févr. 2005, 17:35

?? As-tu fait les modifications conseillées par Jeff ?

L'erreur des header, indique, qu'il y a du code avant le code php que tu nous donnes...

Eléphanteau du PHP | 14 Messages

12 févr. 2005, 17:38

j'ai fait les modif de jeff et maintenant l'image non redimensionné est ok mais pas celle redimensionné...
Un ordinateur ne fait que ce qu'on lui dit de faire

ViPHP
ViPHP | 2144 Messages

12 févr. 2005, 17:45

Peut-on voir le code avec les modifications que tu y as effectué ??? :D :D

Eléphanteau du PHP | 14 Messages

12 févr. 2005, 18:17

Ca marche!!!!!
je suis vraiment desolé de vous avoir dérangé, mais encore une fois je n'ai pas été assez attentif, en effet j'avait ecrit $newlarge au lieu de $newlarg et ca entrainait des erreurs sur toutes les autre fonctions GD
voila encore une fois désolé!

voici le script qui marche pour les curieux:
        /*******************/
        //manipulation image
        /*******************/
        //recuperation de l'image envoyé via la superglobale
        $img = imagecreatefromjpeg ($tmp_name);

        //taille de limage
        $size = getimagesize($tmp_name);
        //largeur de limage
        $larg = $size[0];
        //longueur de limage
        $long = $size[1];
        //redimensionnement
        $newlarg = $larg*20/100;
        $newlong = $long*20/100;
        //image de destination
        $img_dest = imagecreatetruecolor($newlarg,$newlong);
        //create new image
        $copy = imagecopyresampled($img_dest,$img,0,0,0,0,$newlarg,$newlong,$larg,$long);
        // type de fichier
        header('Content-Type: image/jpeg');
        //nom du fichier
        $fichier = $name;
        //envoi de limage
        imagejpeg($img_dest);
        imagejpeg($img_dest,'apercu/'.$fichier);
        imagejpeg($img,'photos/'.$fichier);
        //liberer la memoire
        imagedestroy($img_dest);
        $lien = 'photos/'.$fichier;
        $apercu = 'apercu/'.$fichier;
        /***********************/
        //fin manipulation image
        /***********************/
merci encore pour ceux qui ont essayé de m'aider
Un ordinateur ne fait que ce qu'on lui dit de faire

Administrateur PHPfrance
Administrateur PHPfrance | 658 Messages

09 mars 2005, 23:02

Ben ouai t'as mis mon livre trop rapidement en doute ;)

++

cyruss
Co-auteur du livre PHP 7 avancé
Co-auteur du livre Performances PHP : Audit et optimisation LAMP
Co-fondateur de l'Association Française des Utilisateurs de PHP http://www.afup.org
Formateur PHP pour Openska