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 :

Gif animé sous GD2


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2006
    Messages : 145
    Points : 74
    Points
    74
    Par défaut Gif animé sous GD2
    Voilà mon problème, j'ai un petit script de redimentionnement des images, ça marche nikel sauf quand j'y passe des GIF animé (elle ne sont plus animé...)

    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
    <?
    function retaille($image_origine,$taille_max)
    {
     
    $largeur_origine = imagesx($image_origine);
    $hauteur_origine = imagesy($image_origine);
     
    if (($largeur_origine > $taille_max) OR ($hauteur_origine > $taille_max)):
     
    	if ($hauteur_origine < $largeur_origine) :
    		if ($largeur_origine > $taille_max):$largeur_mini = $taille_max;else:$largeur_mini=$largeur_origine;endif;
    		$hauteur_mini = $hauteur_origine * $largeur_mini / $largeur_origine;
    	else:
    		if ($hauteur_origine > $taille_max):$hauteur_mini = $taille_max;else:$hauteur_mini=$hauteur_origine;endif;
    		$largeur_mini = $largeur_origine * $hauteur_mini / $hauteur_origine;
    	endif;
     
    	$image_finale = imagecreatetruecolor($largeur_mini, $hauteur_mini);
    	imagecopyresampled($image_finale, $image_origine, 0, 0, 0, 0, $largeur_mini, $hauteur_mini, imagesx($image_origine), imagesy($image_origine) );
     
    else:
    	$image_finale = $image_origine;
    endif;
     
    return $image_finale;
    }
     
     
    $info = "<ul class='puce'>";
     
    if ($_POST['action'] == "add"):
     
    $renom = time();
    $nom_fichier = $_FILES['img1']['tmp_name'];
    $type = $_FILES['img1']['type'];
     
    if($_FILES['img1']['error'] != UPLOAD_ERR_OK):
    	$info .= "<li>Erreur de charchement de l'image (Upload NOK : " .$_FILES['img1']['error']. ")</li><br />";
    else:
    	if ($type == "image/x-png"):
    		if(!($image_origine = @imagecreatefrompng($nom_fichier))):
    			$info .= "<li>Erreur de charchement de l'image (PNG NOK)</li><br />";
    		else:
    			$image_finale = retaille($image_origine,'1024');
    			imagepng($image_finale, $renom . ".png");
    			imagedestroy($image_finale);
    			$info .= "<li>Chargement de l'image PNG OK</li><br />";
    		endif;
    	elseif ($type == "image/jpeg" || $type == "image/pjpeg" ):
    		if(!($image_origine = @imagecreatefromjpeg($nom_fichier))):
    			$info .= "<li>Erreur de charchement de l'image (JPEG NOK)</li><br />";
    		else:
    			$image_finale = retaille($image_origine,'1024');
    			imagejpeg($image_finale, $renom . ".jpg");
    			imagedestroy($image_finale);
    			$info .= "<li>Chargement de l'image JPEG OK</li><br />";
    		endif;
    	elseif ($type == "image/gif"):
    		if(!($image_origine = @imagecreatefromgif($nom_fichier))):
    			$info .= "<li>Erreur de charchement de l'image (GIF NOK)</li><br />";
    		else:
    			$image_finale = retaille($image_origine,'1024');
    			imagegif($image_finale, $renom . ".gif");
    			imagedestroy($image_finale);
    			$info .= "<li>Chargement de l'image GIF OK</li><br />";
    		endif;
    	else:
    		$info .= "<li>Type de fichier nom reconnu : ".$type."</li><br />";
    	endif;
    endif;
    else:
    endif;
     
    $info .= "</ul>";
    print $info;
    ?>
    Une solution ?

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Apparemment, ce n'est pas possible car cela serait une violation de la license d'Unisys sur la compression GIF/LZW.

    Désolé.

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2006
    Messages : 145
    Points : 74
    Points
    74
    Par défaut
    Donc si j'ai bien compris, je test les dimension de mon GIF avant de l'envoyé dans ma fonction, si c'est dans les bonnes tailles, je l'enrengistre direct sans passé par les fonction GD2 sinon bah je dit à l'utilisateur qu'il a le droit d'envoyer une autre image...

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

Discussions similaires

  1. Gif animé sous Excel
    Par drchristianmole dans le forum Excel
    Réponses: 9
    Dernier message: 28/03/2009, 17h57
  2. Les GIFs animés sous VISTA
    Par cityhentai dans le forum Windows Vista
    Réponses: 4
    Dernier message: 05/08/2007, 17h33
  3. GIF animés sous VB6
    Par trecks dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 20/03/2007, 15h40
  4. Problème de Gif animé sous IE
    Par nicolb dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/03/2006, 17h11
  5. Gifs animés sous Win32 (VCL)
    Par ctrlaltsuppr dans le forum Composants VCL
    Réponses: 4
    Dernier message: 22/02/2006, 00h41

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