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

Bibliothèques et frameworks PHP Discussion :

[ImageMagick] Création Gif animé


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 142
    Par défaut [ImageMagick] Création Gif animé
    Bonjour,

    J'ai créé une fonction qui me permet de redimensionner une image (gif, png ou jpg) Uploadée par un utilisateur a l'aide d'un formulaire et de la convertir en gif.

    Mais si l'utilisateur upload une image gif annimée le problème c'est qu'apres le redimensionnement l'image n'est plus annimée !

    Comment fair pour redimensionner une image gif annimée afin qu'elle garde son annimation ?

    voila ma fonction :

    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
    // Redimensionne l'avatare uploadé avec converti l'image au format GIF
    	function redim_avatar($im_src, $im_dest)
    	{
    		global $const; // Variable de type tableau associatif qui contient les paramètres de configuration
    		$ResErreur = false;
     
    		$size = getimagesize($im_src); // Recuperation de la taille de l'image source		    	
    		$src_w = $size[0]; // Largeur de l'image source				
    		$src_h = $size[1]; // Hauteur de l'image source
    		$ext = strrchr($im_src, '.'); // Extention du fichier
     
    		if($src_w > $const['WMaxAvatare'] || $src_h > $const['HMaxAvatare']){
    			$coef_w = (($const['WMaxAvatare'] * 100) / $src_w) / 100; // Calcul du coeficient de reduction de la largeur et de la hauteur pour une largeur maximal
    			$coef_h = (($const['HMaxAvatare'] * 100) / $src_h) / 100; // Calcul du coeficient de reduction de la largeur et de la hauteur pour une hauteur maximal
     
    			if ($coef_w < $coef_h) { // Détermine quel coefficient doit etre utilisé
    				$coef = coef_w;
    			}else{
    				$coef = $coef_h;
    			}
     
    			$dst_w = floor($src_w*$coef); // Largeur de l'image de destination
    			$dst_h = floor($src_h*$coef); // Hauteur de l'image de destination
    		}
     
    		$dst_im = imagecreatetruecolor($dst_w,$dst_h); // Retourne une image noire
     
    		if($ext == '.jpg' || $ext == '.jpeg')
    			$src_im = imagecreatefromjpeg($im_src); // Retourne un identifiant d'image représentant une image obtenue à partir de l'image source JPG
    		elseif ($ext == '.gif')
    			$src_im = imagecreatefromgif($im_src); // Retourne un identifiant d'image représentant une image obtenue à partir de l'image source GIF
    		elseif ($ext == '.png')
    			$src_im = imagecreatefrompng($im_src); // Retourne un identifiant d'image représentant une image obtenue à partir de l'image source PNG
     
    		imagecopyresampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h); // Copie, Redimentionne et rééchantillonne l'image source vers l'image destination
     
    		imagegif($dst_im, $im_dest){ // Crée une nouvelle image GIF
     
    		if($ext == '.jpg' || $ext == '.jpeg'){
    			$new_im_dest = str_replace('.jpg','.gif',$im_dest); // Renomme l'extention en .GIF
    			rename($im_dest, $new_im_dest);
    		}elseif ($ext == '.png'){
    			$new_im_dest = str_replace('.png','.gif',$im_dest); // Renomme l'extention en .GIF
    			rename($im_dest, $new_im_dest);
    		}elseif ($ext == '.gif'){
    			$new_im_dest = $im_dest;
    		}
     
     
    		imagedestroy($dst_im); // Libère toute la mémoire associée à l'image image
    		imagedestroy($src_im); // libère toute la mémoire associée à l'image image
     
    		return $new_im_dest; // Retourne le nouvau lien et le nouveau nom du fichier
     
    	}
    Merci beaucoup

  2. #2
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    Bonjour,

    Je me trompe peut être, mais il me semble que si tu touche à la taille du fichier lui même, l'animation n'est plus. Par contre, rien ne t'empêche de les afficher avec les dimensions de ton choix sur un site sans que cela n'affecte l'animation.

    ++

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 142
    Par défaut
    OK merci de ta reponse.

    Donc les sites ou forum comme developpez ne redimensionne pas l'image en avatare mais l'affiche juste avec des nouvelles dimentions ?

  4. #4
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    re,

    Tout à fait, l'image est enregistrée à l'identique et est redimensionnées pour l'affichage sur le site. Tu peux quand même empêcher l'upload de trop grandes images pour garder une certaine cohérence (car une fois réduites elles n'ont plus la même gueule^^) et aussi empêcher l'envoi de trop grosses images, car mine de rien, ça bouffe de la place ces bestioles

    ++

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 142
    Par défaut
    ok je vien de tester et c'est tout de suite plus simple lol mais la qualité de l'image est grandement degradé !

  6. #6
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    oui, en effet, c'est pour cela qu'il faut essayer d'avoir des images pas trop grandes ou alors de les reprendre avec un logiciel adapté avant de les enregistrer pour avoir une taille pas trop loin de celle qui affichera l'image.

    ++

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

Discussions similaires

  1. Création d'un gif animé via freeImage
    Par arkerone dans le forum Langage
    Réponses: 0
    Dernier message: 26/02/2011, 19h33
  2. Création GIF Animé
    Par cyscek dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 17/08/2010, 03h03
  3. Création de GIF animé
    Par freud dans le forum Imagerie
    Réponses: 8
    Dernier message: 27/11/2007, 12h59
  4. [ImageMagick] Gif animés et easyphp
    Par bubuche87 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 12/07/2007, 15h01
  5. [C#] Création de gif animé
    Par toflofr dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/06/2006, 11h50

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