erreur avec ImageCopyResampled

Eléphant du PHP | 355 Messages

30 sept. 2008, 15:23

Bonjour, j'ai fait un code pour redimentionner une image:
$vrTailleIMG = GetImageSize ($vrFichier);
            $vrLargIMG = "$vrTailleIMG[0]";
            $vrHautIMG = "$vrTailleIMG[1]";

            if ($vrLargIMG > $vrHautIMG)
            {

              $largeurDestination = 640;
              $hauteurDestination = 480;

              ImageCopyResampled($vrIMGdestination, $vrFichier, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $vrLargIMG, $vrHautIMG);
               //ImageString($vrIMGdestination, 0, 12, $hauteurDestination, "$vrFichier - ($vrLargIMG x $vrHautIMG)", $blanc);

               //imagecopyresized  ( $vrIMGdestination  , $vrFichier  , 0  , 0  ,0  , 0  , $largeurDestination  , $hauteurDestination  , $vrLargIMG  , $vrHautIMG  );

            } else { 

              echo "image verticale";

            }
Mais j'ai le'rreur suivante:
Warning</b>: imagecopyresampled(): supplied argument is not a valid Image resource
Que dois-je faire ?

Eléphant du PHP | 422 Messages

30 sept. 2008, 15:32

1) Si tu as laissé la méthode avec Image Magick, merci de l'indiquer dans le sujet http://www.phpfrance.com/forums/voir_su ... -asc-0.php

2) Ce que tu dois faire ? Regarde bien les exemples donnés dans la documentation PHP, en général, ils sont bien faits
http://fr2.php.net/manual/fr/function.i ... ampled.php
Ce n'est pas un nom de fichier qu'il faut passer en argument, mais une ressource image comme l'indique si pertinemment le message d'erreur.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 sept. 2008, 15:34

Bonjour,

Normal, qu'est ce que c'est que ta variable $vrIMGdestination ?
Inspire toi des exemples de la doc: http://fr.php.net/imagecopyresampled
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 804 Messages

30 sept. 2008, 15:37

bonjour,

n'as tu pas un problème de fichier d'origine?
il est indiqué ou
$vrFichier= imagecreatefromjpeg($vrFichier);
dog

Eléphant du PHP | 355 Messages

30 sept. 2008, 15:38

voici le code complet maitenant:

Code : Tout sélectionner

<?php // ///////////////////////////////////////////////////////////////////////////////////// // Sujet ici: http://www.developpez.net/forums/d620549/php/langage/fichiers/telechargerment-image-abimee/ // Sujet ici: http://www.developpez.net/forums/d620374/php/scripts/redimentioner-image-imag-magik/ // Sujet ici: http://www.phpfrance.com/forums/voir_reponse-263800.php#263800 // Sujet ici: http://www.phpfrance.com/forums/voir_sujet-243253.php // Sujet ici: http://www.phpfrance.com/forums/voir_sujet-243282.php // ///////////////////////////////////////////////////////////////////////////////////// // Tuto ici GD: http://www.phpdebutant.org/article111.php // ///////////////////////////////////////////////////////////////////////////////////// if(isset($_FILES['photo'])) { $dossier = 'imgs/'; $fichier = basename($_FILES['photo']['name']); $vrFichier = "imgs/".$fichier; $vrIMGdestination = "imgs/cop_".$fichier; $extension = strrchr($vrFichier,'.'); // On récupére l'extension du fichier uploader /////////////////////////////////////////////////////////////////////////////////////// // Pour ajouter des extension c'est ici: //////////////////////////////////////// if ($extension == ".jpg") { header("Content-Type: image/jpeg"); } // Indispenssable pour le téléchargement de l'image redimentionner. if ($extension == ".gif") { header("Content-Type: image/gif"); } // Indispenssable pour le téléchargement de l'image redimentionner. if ($extension == ".tif" or $extension == ".tiff") { header("Content-Type: image/tiff"); } // Indispenssable pour le téléchargement de l'image redimentionner. if ($extension == ".png") { header("Content-Type: image/png"); } // Indispenssable pour le téléchargement de l'image redimentionner. if ($extension == ".jpg" or $extension == ".JPG" or $extension == ".gif" or $extension == ".tif" or $extension == ".tiff" or $extension == ".png") /////////////////////////////////////////////////////////////////////////////////////// { if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné... { //header("Content-Disposition: attachment; filename=".$vrIMGdestination); // Ici on lance le téléchargent de l'image redimentionnée. /////////////////////////////////////////////////////////////////////////////////////// // Redimentionement de l'image: /////////////////////////////// $vrTailleIMG = GetImageSize ($vrFichier); $vrLargIMG = "$vrTailleIMG[0]"; $vrHautIMG = "$vrTailleIMG[1]"; if ($vrLargIMG > $vrHautIMG) { $largeurDestination = 640; $hauteurDestination = 480; $vrIMGdestination2 = ImageCreate ($largeurDestination, $hauteurDestination) or die ("Erreur lors de la création de l'image"); $vrFichier2 = imagecreatefromjpeg($vrFichier); ImageCopyResampled($vrIMGdestination2, $vrFichier2, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $vrLargIMG, $vrHautIMG); } else { echo "image verticale"; } /////////////////////////////////////////////////////////////////////////////////////// //readfile($vrIMGdestination); // Ici on lance le téléchargent de l'image redimentionnée. //unlink($vrIMGdestination); // Ici on supprime l'image une foi quelle à été télécharger. //unlink($vrFichier); // Ici on supprime l'image une foi quelle à été télécharger. //exit(); } else { // Si l'image n'a pas été uploader. echo '!!! Impossible d\'envoyer le fichier selectionné'; echo ("<meta http-equiv='Refresh' content='2;URL=index.php'>"); // Redirection ver le formulaire si l'image n'a pas été uploader. } } else { echo "Ce n\'est pas une image valide que vous essayer de redimentioner, ou ce type d\'image ne peut être redimentionner ici ou bien ce n'est même pas un image"; echo ("<meta http-equiv='Refresh' content='5;URL=index.php'>"); // Redirection ver le formulaire si l'image n'a pas été uploader. } } ?>
Bon il n'y a plus d'erreur mais l'image n'est pas dans le dossier

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 sept. 2008, 16:00

Vérifies les droits (chmod) ainsi que les logs PHP
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 804 Messages

30 sept. 2008, 16:01

c'est ok le CHMOD ?

Eléphant du PHP | 355 Messages

30 sept. 2008, 16:01

je suis en locale pour l'instant donc je peut pas faire de chmod

si je rajoute " ImageJpeg ($vrIMGdestination2);" ça m'affiche l'image redimensionner en noir et blanc dans le navigateur mais l'image n'est pas enregistrer sur le disque