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 :

Redimensionner une image (gif)


Sujet :

Langage PHP

  1. #1
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut Redimensionner une image (gif)
    Bonjour,

    J'ai besoin de redimensionner une image (gif) vers 2 dimensions

    Dimension origine 141 X 189 ($width_orig, $height_orig)
    Dimension destination 75 X 100 ($width, $height)

    Je fais comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $image_origine = imagecreatefromgif($image);
    $img = imagecreatetruecolor($width_orig, $height_orig);
    $trans = imagecolorallocate($img,255,99,140);
    imagecolortransparent($img,$trans);
    imagecopy($img,$image_origine,0,0,0,0,$width_orig, $height_orig);
    imagetruecolortopalette($img, true, 256);
    imageinterlace($img);
    imagegif($img,$dossier_destination.$nouveau_nom."_".$suffixe.$extension, 100);
    imagecopyresampled($image_destination, $img, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
    Le résultat est bon sauf dans les dimensions.

    Ma nouvelle image ne prend pas les dimension $width, $height.

    J'ai fait différentes combinaisons entre les dimensions d'origines et celles de destinations, mais rien n'y fait.

    Que dois-je faire pour redimensionner mon image.

    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    je ne pense pas que imagecopy(...) soit utile.

  3. #3
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,
    je ne pense pas que imagecopy(...) soit utile.
    Exact, je l'avais mis pour faire un test de redimensionnement en plus, mais cela n'a rien apporté.

    Le problème reste entier tout de même.

    Merci encore

  4. #4
    Invité
    Invité(e)
    Par défaut
    Pour ma part, j'ai fait des "Fonctions de redimensionnement d'images" :
    http://j-reaux.developpez.com/tutori...sionner-image/

    Mais je n'ai pas traité les gif, car il semble que la bibliothèque GD ne les traite pas, ou mal en tout cas, pour les gif animés ou avec transparence.
    http://www.php.net/manual/fr/book.image.php
    Cela dit, il suffit d'ajouter quelques lignes de script pour intégrer les "gif"

    Je ne suis pas sûr que tu t'y prennes correctement (création d'un gif ? ou redimensionnement d'un gif existant ?)

  5. #5
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Ce que je veux, c'est redimensionner un gif.

  6. #6
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Pour ma part, j'ai fait des "Fonctions de redimensionnement d'images" :
    http://j-reaux.developpez.com/tutori...sionner-image/

    Mais je n'ai pas traité les gif, car il semble que la bibliothèque GD ne les traite pas, ou mal en tout cas, pour les gif animés ou avec transparence.
    http://www.php.net/manual/fr/book.image.php
    Cela dit, il suffit d'ajouter quelques lignes de script pour intégrer les "gif"

    Je ne suis pas sûr que tu t'y prennes correctement (création d'un gif ? ou redimensionnement d'un gif existant ?)
    J'ai donc utiliser ta fonction fctredimimage, cela simplifie mon code pour les jpg.

    Mon cas portait sur les gif.

    Pour les transparents, ce que j'ai fait fonctionne très bien. Je n'ai qu'un problème de dimension.

    Je continue à gratter de mon côté, merci pour ton aide.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Dans mon fichier (La fonction : fctredimimage), pour ajouter les gif :
    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
    <?php
    // ...
    $ExtfichierOK = '" jpg jpeg png gif"';
    // ...
             // creation de la ressource-image "Src" en fonction de l extension
             switch($extension) {
             case 'jpg':
             case 'jpeg':
               $Ress_Src = imagecreatefromjpeg($rep_Src.$img_Src);
               break;
             case 'png':
               $Ress_Src = imagecreatefrompng($rep_Src.$img_Src);
               break;
             case 'gif':
               $Ress_Src = imagecreatefromgif($rep_Src.$img_Src);
               break;
             }
             // ----------------------------------------------------------
             // creation d une ressource-image "Dst" aux dimensions finales
             // fond noir (par defaut)
             switch($extension) {
             case 'jpg':
             case 'jpeg':
               $Ress_Dst = imagecreatetruecolor($W,$H);
               break;
             case 'png':
               $Ress_Dst = imagecreatetruecolor($W,$H);
               // fond transparent (pour les png avec transparence)
               imagesavealpha($Ress_Dst, true);
               $trans_color = imagecolorallocatealpha($Ress_Dst, 0, 0, 0, 127);
               imagefill($Ress_Dst, 0, 0, $trans_color);
               break;
             case 'gif':
               // ...
               // (mettre ICI le cas du traitement du gif)
               // ...
               break;
             }
    // ...
    ?>

  8. #8
    Membre extrêmement actif Avatar de lodan
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 064
    Points : 682
    Points
    682
    Par défaut
    Oui c'est exactement ce que j'avais fait et en ajoutant le imagegif de fin

    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
    case 'gif':
    							if (imagetypes() & IMG_GIF)
    							{
    								$Ress_Dst = imagecreatetruecolor($W, $H);
    								$transparent = imagecolorallocate($Ress_Dst,255,99,140);
    								imagecolortransparent($Ress_Dst,$transparent);
    								imagecopy($Ress_Dst,$Ress_Src,0,0,0,0,$W, $H);
    								imagetruecolortopalette($Ress_Dst, true, 256);
    								imageinterlace($Ress_Dst);
    							}
    							else
    							{
    								// echo "<br>Gif non supporté";
    							}
    							break;
     
    					}
    					// ----------------------------------------------------------
    					// REDIMENSIONNEMENT (copie, redimensionne, re-echantillonne)
    					imagecopyresampled($Ress_Dst, $Ress_Src, 0, 0, 0, 0, $W, $H, $W_Src, $H_Src);
    					// ----------------------------------------------------------
    					// ENREGISTREMENT dans le repertoire (avec la fonction appropriee)
    					switch ($extension) {
    						case 'jpg':
    						case 'jpeg':
    							imagejpeg ($Ress_Dst, $rep_Dst.$img_Dst);
    							break;
    						case 'png':
    							imagepng ($Ress_Dst, $rep_Dst.$img_Dst);
    							break;
    						case 'gif':
    							imagegif ($Ress_Dst, $rep_Dst.$img_Dst);
    							break;
    					}
    ça fonctionne au poil, tu peux le rajouter dans le tuto au moins pour cette fonction.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ImageMagick] Redimensionner une image JPEG PNG GIF
    Par Stouille89 dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 25/08/2007, 22h10
  2. [VB.NET] Redimensionner une image dans un PictureBox
    Par Monster77 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 05/04/2007, 19h24
  3. [32 bits] Redimensionner une image JPEG/GIF/PNG...
    Par CR_Gio dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 04/10/2005, 01h57
  4. [VB.NET] Redimensionner une image proportionnelement
    Par Monster77 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/10/2004, 13h10
  5. [MX2004] redimensionner une image lors du chargement
    Par ouinouin dans le forum Flash
    Réponses: 8
    Dernier message: 18/02/2004, 19h32

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