IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

téléchargerment : image abimée


Sujet :

Langage PHP

  1. #61
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    après lecture et relecture et relecture du tuto j'ai compris quelque truc,

    L'image été en noir et blanc, il failai ajouter pour le couleur ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $vrIMGdestination2 = ImageCreateTrueColor ($hauteurDestination, $largeurDestination);
    Puis j'afficher l'image avec ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImageJpeg ($vrIMGdestination2);
    Pour que ca créer l'image dans le dossier il falait ajouter le nom de l'image a créer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImageJpeg ($vrIMGdestination2, $vrIMGdestination);

    Je pote donc mon code terminé garce a vous :

    Le formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
           <form method="POST" action="upld_redim_640_gd.php" enctype="multipart/form-data">
           <!-- Limiter la taille des fichiers à 500Ko -->
           <input type="hidden" name="MAX_FILE_SIZE" value="500000" /> <fieldset>
           Redimensionnez votre imgage 640
           <!-- champs d'envoi de fichier, de type file -->
           <p><label for="Fichier">Fichier :</label><input type="file" name="photo" class="boutons" /></p>
           <!-- bouton d'envoi -->
           <p>
             <select name="lunnatick_choix_taille" class="boutons" mode="multiple">
               <option value="choix_taille_nul">Vous pouvez choisir un taille prédéfinie</option>
               <option value="640x480_480x640">Horizontale 640x480 - Verticale 480-640</option>
               <option value="Non">Non</option>
             </select>
        </p>
           <p>Si vous n'avez pas choisi de taille pr&eacute;d&eacute;fini alor remplissez les deux chan ci-dessous, si non laissez les vide: </p>
           <p>
             Nouvelle largeur: 
               <input name="lunnatick_largeur" type="text" class="boutons">
           </p>
           <p>
             Nouvelle hauteur: 
             <input name="lunnatick_hauteur" type="text" class="boutons">
             </p>
           <p><input type="submit" name="envoi" class="boutons" value="Redimentioner l'image" /></p></legend></fieldset></form>
    Puis le code PHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    <?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/
    /////////////////////////////////////////////////////////////////////////////////////
    / /////////////////////////////////////////////////////////////////////////////////////
     
     
     
    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
     
       $choixTaille = $_POST['lunnatick_choix_taille'];
     
    	if ($choixTaille == "choix_taille_nul") 
    	 {
    	    $largeurDestination = $_POST['lunnatick_largeur'];
            $hauteurDestination = $_POST['lunnatick_hauteur'];
     
    	 } else {
    	    if ($choixTaille == "640x480_480x640")
    		 {
    		   $largeurDestination = 640;
               $hauteurDestination = 480;
    		 }
    	 }
     
    ///////////////////////////////////////////////////////////////////////////////////////
    // Pour ajouter des extension c'est ici:
    ////////////////////////////////////////
     
       if ($extension == ".jpg" or $extension == ".jpeg") { 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 == ".jpeg" 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)
                {
     
                   // ///////////////////////////////////////////////////////////////////////////////////////////////////////////
    			   // C'est ici le code qui redimentionne les image horizontale:
    			   // //////////////////////////////////////////////////////////
                   $vrIMGdestination2 = ImageCreate ($largeurDestination, $hauteurDestination); 
    			   $vrIMGdestination2 = ImageCreateTrueColor ($largeurDestination, $hauteurDestination);
     
    			   if ($extension == ".jpg" or $extension == ".jpeg") { $vrFichier2 = imagecreatefromjpeg($vrFichier); } 
                   if ($extension == ".gif") { $vrFichier2 = imagecreatefromgif($vrFichier); } 
    			   if ($extension == ".tif" or $extension == ".tiff") { $vrFichier2 = imagecreatefromtiff($vrFichier); } 
    			   if ($extension == ".png") { $vrFichier2 = imagecreatefrompng($vrFichier); } 
                   //$couleur_fond = ImageColorAllocate ($vrIMGdestination2, 255, 0, 0); 
     
                    ImageCopyResampled($vrIMGdestination2, $vrFichier2, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $vrLargIMG, $vrHautIMG);
    				 // ImageString($vrIMGdestination2, 0, 12, $hauteurDestination-18, "$vrFichier2 - ($vrLargIMG x $vrHautIMG)", "Lunnatick"); // Pour écrire sur l'image
                     ImageJpeg ($vrIMGdestination2, $vrIMGdestination); // On créer l'image dans le dossier
                   // ///////////////////////////////////////////////////////////////////////////////////////////////////////////
     
                } else { 
     
                   // ///////////////////////////////////////////////////////////////////////////////////////////////////////////
    			   // C'est ici le code qui redimentionne les image verticale:
    			   // ////////////////////////////////////////////////////////
                   $vrIMGdestination2 = ImageCreate ($hauteurDestination, $largeurDestination); 
    			   $vrIMGdestination2 = ImageCreateTrueColor ($hauteurDestination, $largeurDestination);
     
    			   if ($extension == ".jpg" or $extension == ".jpeg") { $vrFichier2 = imagecreatefromjpeg($vrFichier); } 
                   if ($extension == ".gif") { $vrFichier2 = imagecreatefromgif($vrFichier); } 
    			   if ($extension == ".tif" or $extension == ".tiff") { $vrFichier2 = imagecreatefromtiff($vrFichier); } 
    			   if ($extension == ".png") { $vrFichier2 = imagecreatefrompng($vrFichier); } 
                   //$couleur_fond = ImageColorAllocate ($vrIMGdestination2, 255, 0, 0); 
     
                    ImageCopyResampled($vrIMGdestination2, $vrFichier2, 0, 0, 0, 0, $hauteurDestination, $largeurDestination, $vrLargIMG, $vrHautIMG);
                     ImageJpeg ($vrIMGdestination2); // juste pour le tes a supprimer aprés
                   // ///////////////////////////////////////////////////////////////////////////////////////////////////////////
     
                }
     
    ///////////////////////////////////////////////////////////////////////////////////////
     
                  readfile($vrIMGdestination); // Ici on lance le téléchargent de l'image redimentionnée.
                  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.
     
       }
    }
     
     
    ?>
    Merci beacoup pour votre patience

  2. #62
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Cependant il me reste un souci:

    • je voudrai que si l'utilisateur tape un largeur pour le redimensionnement de son image mais qu'il ne donne pas de hauteur la hauteur de l'image s'adapte parapor à la nouvelle largeur et vis versa, mais le tuto ne dit rien la dessus.



    Puis une deuxième chose:

    • J'ai ajouter des conditions dans mon code:
    • Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      if ($extension == ".jpg" or $extension == ".jpeg") { $vrFichier2 = imagecreatefromjpeg($vrFichier); } 
      if ($extension == ".gif") { $vrFichier2 = imagecreatefromgif($vrFichier); } 
      if ($extension == ".tif" or $extension == ".tiff") { $vrFichier2 = imagecreatefromtiff($vrFichier); } 
      if ($extension == ".png") { $vrFichier2 = imagecreatefrompng($vrFichier); }
    • imagecreatefromjpeg OK
    • imagecreatefromgif OK
    • imagecreatefrompng OK
    • mais imagecreatefromtiff ne marche pas ni imagecreatefromtif, que dois-je faire ?

  3. #63
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    Citation Envoyé par koKoTis Voir le message
    Cependant il me reste un souci:

    • je voudrai que si l'utilisateur tape un largeur pour le redimensionnement de son image mais qu'il ne donne pas de hauteur la hauteur de l'image s'adapte parapor à la nouvelle largeur et vis versa, mais le tuto ne dit rien la dessus.
    Pour ca tu dois prendre le ratio (largeur / hauteur, ou hauteur / largeur) de l'image uploadé, et multiplier la donnée que tu as par le ratio pour avoir celle manquante.

    Citation Envoyé par koKoTis Voir le message
    Puis une deuxième chose:

    • J'ai ajouter des conditions dans mon code:
    • Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      if ($extension == ".jpg" or $extension == ".jpeg") { $vrFichier2 = imagecreatefromjpeg($vrFichier); } 
      if ($extension == ".gif") { $vrFichier2 = imagecreatefromgif($vrFichier); } 
      if ($extension == ".tif" or $extension == ".tiff") { $vrFichier2 = imagecreatefromtiff($vrFichier); } 
      if ($extension == ".png") { $vrFichier2 = imagecreatefrompng($vrFichier); }
    • imagecreatefromjpeg OK
    • imagecreatefromgif OK
    • imagecreatefrompng OK
    • mais imagecreatefromtiff ne marche pas ni imagecreatefromtif, que dois-je faire ?
    GD ne gere pas le tiff : http://fr3.php.net/manual-lookup.php...omtiff&lang=en

  4. #64
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Bonjour et merci

    Citation Envoyé par leodi Voir le message
    Pour ca tu dois prendre le ratio (largeur / hauteur, ou hauteur / largeur) de l'image uploadé, et multiplier la donnée que tu as par le ratio pour avoir celle manquante.
    ]
    Oulala je suis mauvais en calcule la il me faudrait un exemple par ce que je n'y arriverai pas tous seul

  5. #65
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    Bonjour
    En fait c'est la règle de 3.

    la hauteur de l'image uploadé $vrLargIMG
    la largeur de l'image uploadé $vrHautIMG
    et admettons la largeur que l'utilisateur rentre : 300

    Il te manque la hauteur finale!

    Tu fais donc

    hauteur = ($vrHautIMG / $vrLargIMG) * 300

    Je te laisse chercher si l'utilisateur n'a pas rentré la largeur

  6. #66
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    C'est a çà que tu penser ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    	   if ($_POST['lunnatick_hauteur'] == "") 
    		{
    	        $hauteurDestination = ($vrHautIMG / $vrLargIMG) * $largeurDestination;
    		 } else {
    		    $hauteurDestination = $_POST['lunnatick_hauteur'];
    		 }
     
    	    if ($_POST['lunnatick_largeur'] == "") 
    		{
    	        $largeurDestination = ($vrLargIMG / $vrHautIMG) * $hauteurDestination;
    		 } else {
    		    $largeurDestination = $_POST['lunnatick_largeur'];
    		 }
    Ca marche nikel

  7. #67
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    j'ai rajouter une ligne pour ajouter un texte sur l'image:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imagettftext  ($vrIMGdestination2  ,30  ,0  ,0  ,0  ,"#FFFFFF"  ,"Times New Roman"  ,"Lunnatick" ); // Pour écrire sur l'image
    Mais la l'image est complettement vide, il n'y a pas d'appercu, voyer vous ce qui cloche ?

  8. #68
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    Rappelle toi de ce que j'ai dis hier, et avant hier.
    Pour débuger du GD, commente les header et regarde le message d'erreur.

    Edit : Sinon ton erreure viens du fait que imagettftext prend en argument le nom du fichier contenant la police, et non pas le nom de la police.

    http://fr3.php.net/manual/fr/function.imagettftext.php

  9. #69
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    c'est bon j'ai trouver il falait utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $vrCouleurFont = imagecolorexact  ($vrIMGdestination2  ,225  ,225  ,225  );

  10. #70
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par leodi Voir le message
    Bonjour
    En fait c'est la règle de 3.

    la hauteur de l'image uploadé $vrLargIMG
    la largeur de l'image uploadé $vrHautIMG
    et admettons la largeur que l'utilisateur rentre : 300

    Il te manque la hauteur finale!

    Tu fais donc

    hauteur = ($vrHautIMG / $vrLargIMG) * 300

    Je te laisse chercher si l'utilisateur n'a pas rentré la largeur

    ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hauteur = ($vrHautIMG / $vrLargIMG) * 300
    fonctione parfaitemlent

    mais pas l'inverse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hauteur = ($vrLargIMG / $vrHautIMG) * 125

  11. #71
    Membre actif Avatar de leodi
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2004
    Messages : 172
    Points : 224
    Points
    224
    Par défaut
    Bon ba fais pas l'inverse alors

Discussions similaires

  1. Télécharger images pour boutons
    Par mehdiyou dans le forum VB.NET
    Réponses: 16
    Dernier message: 09/11/2010, 02h39
  2. Réponses: 33
    Dernier message: 12/03/2009, 17h37
  3. bouton "télécharger image"
    Par maze.alex dans le forum IHM
    Réponses: 4
    Dernier message: 04/11/2008, 16h37
  4. [MySQL] Télécharger images stockées dans mysql
    Par else_if dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/05/2008, 05h53
  5. Télécharger image vers poste client
    Par Thomad dans le forum Langage
    Réponses: 4
    Dernier message: 01/08/2006, 10h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo