RESOLU : PHP afficher un gif animé qui s'anime

RESOLU : PHP afficher un gif animé qui s'anime - PHP - Programmation

Marsh Posté le 23-02-2007 à 14:31:57    

Bonjour a tous
 
voila, je me suis crée une petite page en php pour afficher mes signatures de manière aleatoire sur un forum.
cad a chaque rafraichissement de page,la signature affiché change.
 
pour les jpeg ca marche impec, par contre pour les gif animé, il m'affiche bien le gif, mais il n'est plus animé.
je l'affiche avec un createimagefromgif
 
si vous avez une solutions ca m'aiderait.
 
merci


Message édité par chico008 le 24-02-2007 à 13:35:40
Reply

Marsh Posté le 23-02-2007 à 14:31:57   

Reply

Marsh Posté le 23-02-2007 à 15:47:13    

et pourquoi t'utilises pas tout simplement une balise <img /> pour afficher un gif ou un jpg?  :heink:

Reply

Marsh Posté le 23-02-2007 à 16:08:42    

rufo a écrit :

et pourquoi t'utilises pas tout simplement une balise <img /> pour afficher un gif ou un jpg?  :heink:


Pour faire des GIFs animés aléatoire.
 
Il semble que via GD, ça ne soit pas trop possible, par contre, sur certain forum, ils disent qu'a partir de plusieurs images, tu peux les compilers en un GIF animé via imagemagick qui est aussi une extension pour PHP


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 23-02-2007 à 16:18:50    

et c'est pas possible d'avoir un répertoire contenant un nombre fini de gif animés déjà tout fait et ensuite, ton script php en sélectionne un au hasard et le fait afficher dazns une balise img? Quel est le besoin de générer à la volée un gif animé?

Reply

Marsh Posté le 23-02-2007 à 18:36:42    

rufo a écrit :

et c'est pas possible d'avoir un répertoire contenant un nombre fini de gif animés déjà tout fait et ensuite, ton script php en sélectionne un au hasard et le fait afficher dazns une balise img? Quel est le besoin de générer à la volée un gif animé?


 
Vu qu'il l'utilise sur un forum, il ne peux pas modifier de manière dynamique le contenu de la balise <img />
Donc sa seule solution est d'appeler une image dynamique...


---------------
ilonet - Internet, Informatique et Webmastering
Reply

Marsh Posté le 23-02-2007 à 19:12:10    

pis le GD imagemagic je croit pas qu'il soit installer sur le serveur php ou j'heberge tout ca (a moin que ce soit une lib de base ?!)

Reply

Marsh Posté le 23-02-2007 à 19:17:55    

non, c'est à rajouter ^^


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Marsh Posté le 23-02-2007 à 19:55:11    

donc c'est mort pour cette solution.
 
une autre ? :p

Message cité 1 fois
Message édité par chico008 le 23-02-2007 à 19:55:32
Reply

Marsh Posté le 23-02-2007 à 20:22:43    

chico008 a écrit :

donc c'est mort pour cette solution.
 
une autre ? :p


 
Sans rajouter aucun module sur le serveur, je crains que ça soit impossible :(


---------------
ilonet - Internet, Informatique et Webmastering
Reply

Marsh Posté le 23-02-2007 à 20:27:23    

:'(

Reply

Marsh Posté le 23-02-2007 à 20:27:23   

Reply

Marsh Posté le 23-02-2007 à 20:56:13    

Pourquoi pas un truc du genre :
 

Code :
  1. $images = array('image1.gif', 'image2.jpg', 'image3.gif');
  2.  
  3. $rand_image = $images[rand(0, count($images) - 1)];
  4. $extension = substr(strrchr($rand_image, "." ), 1);
  5.  
  6. switch ($extension) {
  7.  case 'gif': header('Content-Type: image/gif'); break;
  8.  case 'jpg': header('Content-Type: image/jpeg'); break;
  9. }
  10.  
  11. readfile($rand_image);


 
?

Message cité 1 fois
Message édité par sielfried le 23-02-2007 à 20:56:43

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 23-02-2007 à 21:56:38    

j'avait deja essayer avec le content, ca marchait pas non plus.

Reply

Marsh Posté le 23-02-2007 à 22:17:36    

Ben normalement ça marche très bien, y a pas de raison. :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 23-02-2007 à 22:22:54    

ouais, ça marche très bien :o

Reply

Marsh Posté le 23-02-2007 à 22:43:35    

je re essaierais, mais il me semble que ca n'avait aps marcher,  
j'avait eut comme dit plus haut, il s'affiche, mais s'anime pas.

Reply

Marsh Posté le 23-02-2007 à 23:02:24    

tu n'as pas fait de readfile() :o :o :o mais un createImage...gif() :o :o :o :o

Reply

Marsh Posté le 24-02-2007 à 10:10:03    

petit retour
 
j'ai donc essayer avec un readfile
ca marche pas
voici mon erreur

Citation :


L'image “http://xxx.free.fr/test/randsign.php” ne peut être affichée car elle contient des erreurs.


par contre il prend bien le header apparement, en titre de page j'ai randsign.php (Image GIF)


Message édité par chico008 le 24-02-2007 à 10:10:13
Reply

Marsh Posté le 24-02-2007 à 10:12:55    

Cette erreur provient de GD, je crois... t'as pas du tout besoin de GD pour faire ce que j'ai écrit plus haut.  [:pingouino]  
 
Fais voir ton php.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 24-02-2007 à 10:21:59    

Code :
  1. <?php
  2. $nbr_img = 10;
  3. mt_srand((double)microtime()*1000000);
  4. $num_img = mt_rand(1,$nbr_img);
  5. if ($num_img ==4)
  6. {
  7. $rand_img = imagecreatefromgif("sign".$num_img.".gif" );
  8. }
  9. else
  10. {
  11. $rand_img = imagecreatefromjpeg("sign".$num_img.".jpg" );
  12. }
  13. $rand_imgx = imagesx($rand_img);
  14. $rand_imgy = imagesy($rand_img);
  15. if ($num_img==4)
  16. {
  17. header ("content-type: image/gif" );
  18. readfile($rand_img);
  19. }
  20. else
  21. {
  22. header ("Content-type: image/jpeg" );
  23. imagejpeg($rand_img);
  24. }
  25. ?>

Reply

Marsh Posté le 24-02-2007 à 10:32:23    

Bon ben voilà, tu fais des imagecreate tout ça, y a pas besoin... :spamafote:
 
(Le mt_srand est inutile si ton PHP est >= 4.2.0.)


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 24-02-2007 à 10:58:35    

sielfried a écrit :

Pourquoi pas un truc du genre :
 
[...]
 
?


 
En effet, il n'y a pas besoin d'utiliser GD ici...
On cherchait à faire compliqué pour un problème simple :o


---------------
ilonet - Internet, Informatique et Webmastering
Reply

Marsh Posté le 24-02-2007 à 12:43:44    

donc je fait le readfile sans le createimage ?
ca marche aussi pour les jpeg ?

Reply

Marsh Posté le 24-02-2007 à 12:51:53    

En reprenant ton code :
 

Code :
  1. <?php
  2. $nbr_img = 10;
  3. $num_img = mt_rand(1, $nbr_img);
  4. if ($num_img==4)
  5. {
  6.   header ("content-type: image/gif" );
  7.   readfile('sign'.$num_img.'.gif');
  8. }
  9. else
  10. {
  11. header ("Content-type: image/jpeg" );
  12. readfile('sign'.$num_img.'.jpeg');
  13. }
  14. ?>


---------------
ilonet - Internet, Informatique et Webmastering
Reply

Marsh Posté le 24-02-2007 à 13:29:39    

gnééé, maintenant, ca marche impec pour le gif, mais des que ca tombe sur un jpeg j'ai ca a la place de l'image :
http://xxx.free.fr/test/randsign.php
 
edit: finalement j'ai mixer les 2 et ca a l'air de marcher impec
voici le code final

Code :
  1. <?php
  2. $nbr_img = 10;
  3. $num_img = mt_rand(1,$nbr_img);
  4. if ($num_img ==4)
  5. {
  6.   header ("Content-type: image/gif" );
  7.   readfile("sign".$num_img.".gif" );
  8. }
  9. else
  10. {
  11.   header ("Content-type: image/jpeg" );
  12.   $rand_img = imagecreatefromjpeg("sign".$num_img.".jpg" );
  13.   imagejpeg($rand_img);
  14. }
  15. ?>


 
Merci pour votre aide.

Message cité 1 fois
Message édité par chico008 le 24-02-2007 à 13:35:25
Reply

Marsh Posté le 24-02-2007 à 13:51:09    

Tain mais t'es con ou quoi ?
C'est simlpe pourtant :

Code :
  1. <?php
  2.     $nbr_img = 10;
  3.     $num_img = mt_rand(1,$nbr_img);
  4.    
  5.     if ($num_img ==4)
  6.     {
  7.      header ("Content-type: image/gif" );
  8.      readfile("sign".$num_img.".gif" );
  9.     }
  10.     else
  11.     {
  12.      header ("Content-type: image/jpeg" );
  13.      readfile("sign".$num_img.".jpg" );
  14.     }
 

Je vois vraiment pourquoi tu passes par GD, alors que le but ICI est de simplement lire le fichier c'est tout [:mlc]

 

edit : Hé merde j'avais pas vu ce qu'avait mis jukieng

 

chico008, la prog c'est pas du bricolage


Message édité par gatsu35 le 24-02-2007 à 13:52:58
Reply

Marsh Posté le 24-02-2007 à 14:06:45    

chico008 a écrit :

gnééé, maintenant, ca marche impec pour le gif, mais des que ca tombe sur un jpeg j'ai ca a la place de l'image :
http://xxx.free.fr/test/randsign.php


 
C'est parce que dans mon code, l'extension de mes images jpeg est *.jpeg.
Or chez toi, visiblement, c'est *.jpg
 
Donc il suffit de changer cette ligne :

Code :
  1. readfile('sign'.$num_img.'.jpeg');


 
Par :

Code :
  1. readfile('sign'.$num_img.'.jpg');


 
et ça marchera ;)


---------------
ilonet - Internet, Informatique et Webmastering
Reply

Marsh Posté le 24-02-2007 à 14:08:43    

D'ailleurs, au lieu de ta condition "if ($num_img ==4)", tu pourrais récupérer automatiquement la liste des images présentes dans ton répertoire, et tout gérer automatiquement en fonction de l'extension du fichier :)

 

C'est légèrement plus lent, mais c'est plus pratique pour rajouter de nouvelles signatures :o


Message édité par jukieng le 24-02-2007 à 14:09:11

---------------
ilonet - Internet, Informatique et Webmastering
Reply

Marsh Posté le 24-02-2007 à 14:14:18    

Gatsu, calmos
et a la base je suis pas dev, donc je fait de la prog comme je peut.
 
et jukieng, j'avait bien changer l'extension rassure toi, mais pour une raison inconnue ca marchait pas  
 
edit : ah si, je suis bete, j'avait oublier d'enlever le E,  bon, pas grave, maintenant ca marche, c'est le principale.

Reply

Marsh Posté le 25-02-2007 à 14:55:03    

rufo a écrit :

et c'est pas possible d'avoir un répertoire contenant un nombre fini de gif animés déjà tout fait et ensuite, ton script php en sélectionne un au hasard et le fait afficher dazns une balise img? Quel est le besoin de générer à la volée un gif animé?


 
T'as finalement fait ce que j'avais proposé : un random sur un nb fini d'images déjà existantes puis affichage :o  

Reply

Marsh Posté le 26-02-2007 à 01:29:53    

Code :
  1. if ($num_img ==73254)
  2. {
  3. $rand_img = imagecreatefromjpeg("goastecx.jpg" );
  4. }


[:dawa]

Reply

Marsh Posté le 26-02-2007 à 12:48:16    

elle s'appelle hello.jpg :o

Reply

Marsh Posté le 26-03-2007 à 16:15:10    

bon, j'arrive un peu tard, mais il existe une solution encore plus simple:
 
dans ta signature, tu met:
<img src="http:adresse_de_ton_site/signature.php" />
 
et dans signature.php, tu mets
 
<?php
$adresse[] = 'adresse1.jpg';
$adresse[] = 'adresse2.gif';
$adresse[] = 'adresse3.png';
$adresse[] = 'adresse4.truc';
...
...
...
header ('location:'.$adresse[mt_rand[$adresse]]);
?>
 
et c'est ok :D
 
de cette façon, tu n'as même pas besoin de regarder le type de fichier, et ça allège considérablement ton serveur
 
c'est dans l'idée de ne pas différencier le fond de la forme que j'ai trouvé cette solution. ;)
 
bon, ensuite, les application sont multiples, mais je te laisse les découvrir :D.
 
bon, voila, j'espère ne pas avoir été trop ennuyeuse.
amicalement
Sakura

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed