Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > Imagick
Imagick Forum d'entraide pour l'extension Imagick permettant de manipuler des images en PHP (port de l'API ImageMagick).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/08/2007, 17h01   #1
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 142
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 142
Points : 27
Points : 27
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 :
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
Stouille89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2007, 17h47   #2
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
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.

++
__________________
LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 15h56   #3
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 142
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 142
Points : 27
Points : 27
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 ?
Stouille89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 17h04   #4
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
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

++
__________________
LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2007, 21h53   #5
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 142
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 142
Points : 27
Points : 27
ok je vien de tester et c'est tout de suite plus simple lol mais la qualité de l'image est grandement degradé !
Stouille89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2007, 22h00   #6
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
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.

++
__________________
LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h14.


 
 
 
 
Partenaires

Hébergement Web