erreur avec ImageCopyResampled

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : erreur avec ImageCopyResampled

par phpdog » 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

par dogmongo » 30 sept. 2008, 16:01

c'est ok le CHMOD ?

par @rthur » 30 sept. 2008, 16:00

Vérifies les droits (chmod) ainsi que les logs PHP

par phpdog » 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

par dogmongo » 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

par @rthur » 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

par caroube » 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.

erreur avec ImageCopyResampled

par phpdog » 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 ?