[PHP] Enregistrer in *.gif en *.png et garder l'image valable

Enregistrer in *.gif en *.png et garder l'image valable [PHP] - PHP - Programmation

Marsh Posté le 21-05-2003 à 17:17:36    

j'ai fait un switch sur le type de l'image que j'envoi par mon formulaire.
 
quand c'est du png ou du jpeg, ça passe nickel, mais quand c'est du gif, ça coince.
 
voici le code :

Code :
  1. case 'image/gif' :
  2.   // Définition des variables de taille
  3.   $source = ImageCreateFromGif($pic_name);
  4.   $w = Imagesx($source);
  5.   $h = Imagesy($source);
  6.   $new_w = 640;
  7.   $new_h = 480;
  8.   // Création physique de l'image
  9.   $im = imageCreate($new_w, $new_h) or die ("Erreur lors de la crétion de l'image" );
  10.   Imagecopyresized($im,$source,0,0,0,0,$new_w,$new_h,$w,$h);
  11.   $miniature = "mini_$pic_name";
  12.   imagegif($im,$miniature);
  13.   // Affichage des images
  14.   print (" <center> <img src= \"".$folder."/".$miniature."\" > " );
  15.   // déplacement de la vignette et supresion des fichiers temporaires
  16.   @copy ($miniature, $folder.$miniature);
  17.   @unlink ($miniature);
  18.   @unlink ($pic_name);
  19.  break;


 
et au passage, quelques questions
 
1. dans le cas d'un envoi de gif transparent, la transprence est gardée ??
2. dans le cas d'un gif annimé, l'animation est gardée ??
3. est-il possible de redimentionner un fichier *.bmp envoyé par un user et l'enregistrer en jpg


Message édité par xkamui le 23-06-2003 à 17:50:48
Reply

Marsh Posté le 21-05-2003 à 17:17:36   

Reply

Marsh Posté le 22-05-2003 à 23:27:32    

:cry:  :cry:  [:yoyoz] plizzzz

Reply

Marsh Posté le 22-05-2003 à 23:31:50    

Bin euh... http://www.php.net/manual/fr/ref.image.php

Citation :

gif   Uniquement supporté en versions de GD antérieure à gd-1.6. Le support des images GIF est disponible en lecture seule depuis PHP 4.3.0, et dans la version de la librairie qui est fournie avec la distribution de PHP.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 22-05-2003 à 23:37:13    

ce qui veut donc dire, que je ne peux absolument pas créer de vignette avec mon php4 à partir de fichier gif avec mon GD>1.6
 
alors comment je fait ??
et pour mes autres questions ??

Reply

Marsh Posté le 22-05-2003 à 23:41:06    

xkamui a écrit :

ce qui veut donc dire, que je ne peux absolument pas créer de vignette avec mon php4 à partir de fichier gif avec mon GD>1.6


J'en ai peur. En même temps, GIF c'est un format propriétaire, donc bof. PNG roulaize.

xkamui a écrit :


alors comment je fait ??
et pour mes autres questions ??


Tu fais pas [:ddr555] Ou tu trouves un soft qui le fait pour toi [:spamafote] Ou alors tu lis le GIF, tu l'enregistres en JPG ou BMP ou c'que tu veux, tu resizes et t'enregistres dans le nouveau format. Bref, essaie de virer le GIF, quoi.
Pour les autres questions, je répondrais bien oui pour tout mais n'ayant pas testé, je peux pas te garantir.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 23-05-2003 à 01:31:50    

je suis d'accord sur le fait que le png est mieux que le gif, pas de pbs, mais c'est que, en fait, l'image viens d'un utilisateur lambda qui ajoute, à une petite annonce, une photo de son produit. Je ne suis donc pas garant auprès de mon supérieur que l'utilisateur ne mettras pas de fichier gif.
 
Par ailleurs, comment on peut faire pour lire un fichier gif, et redimensionner et l'enregistrer en jpg quand il ne veux même pas lire mon gif...

Reply

Marsh Posté le 23-05-2003 à 23:54:35    

yop yop  [:yoyoz]

Reply

Marsh Posté le 24-05-2003 à 08:47:05    

le png c'est bien pour faire des captures d'écran windows mais avec des photos, ça bouffe pas à mort comparé à du gif / jpg ?

Reply

Marsh Posté le 28-05-2003 à 11:29:29    

sujet toujours d'actualité, svp

Reply

Marsh Posté le 28-05-2003 à 11:31:56    

Master_Jul a écrit :

le png c'est bien pour faire des captures d'écran windows mais avec des photos, ça bouffe pas à mort comparé à du gif / jpg ?

des photos en gif?????

Reply

Marsh Posté le 28-05-2003 à 11:31:56   

Reply

Marsh Posté le 28-05-2003 à 11:33:21    

xkamui a écrit :

sujet toujours d'actualité, svp

Tu as lu la réponse de Taiche????
Tu ouvres ton gif, tu le mets en PNG, tu redimensionnes ton PNG, et tu enregistres en PNG......

Reply

Marsh Posté le 28-05-2003 à 12:42:14    

harrysauce a écrit :

Tu as lu la réponse de Taiche????
Tu ouvres ton gif, tu le mets en PNG, tu redimensionnes ton PNG, et tu enregistres en PNG......


 
ok, alors comment convertir mon fichier gif en png ??...
juste en lui changeant l'extention ??
 
et ensuite en le redimentionnant comme n'importe quel fichier png ??!! :??:

Reply

Marsh Posté le 28-05-2003 à 12:55:39    

xkamui a écrit :


 
ok, alors comment convertir mon fichier gif en png ??...
juste en lui changeant l'extention ??
 
et ensuite en le redimentionnant comme n'importe quel fichier png ??!! :??:

je repete parce que je crois que t'as pas vraiment compris ;)
 
tu OUVRES le fichier gif
 

Citation :

gif   Uniquement supporté en versions de GD antérieure à gd-1.6. Le support des images GIF est disponible en lecture seule depuis PHP 4.3.0, et dans la version de la librairie qui est fournie avec la distribution de PHP.


 
le lecture seule implique que tu peux ouvrir ton gif, ensuite tu enregistres ton image en PNG (tu cherches dans l'aide de GD lib)
ensuite tu la redimensionnes, et tu l'enregistres....
 
Je vois vraiment pas ce qu'il y a de sorcier!!!

Reply

Marsh Posté le 23-06-2003 à 17:01:11    

je sèche complétement sur cette histoire de gif !!
 
j'ouvre mon fichier gif = je fait un fopen dessus ??
 
ensuite, j'enregistre mon fichier gif en png... ok, mais comment, j'avoue que je n'y pige rien...
 
HELP !!!  :cry:  :cry:

Reply

Marsh Posté le 23-06-2003 à 17:24:54    

harrysauce a écrit :

jtu cherches dans l'aide de GD lib

Reply

Marsh Posté le 23-06-2003 à 17:26:40    

j'ai cherché, mais c'est pas facil de trouver quand on sait pas vraiment ce qu'on cherche...
 
donc, une petite aide...

Reply

Marsh Posté le 23-06-2003 à 17:51:05    

:bounce: up pour le rename du topic :bounce:

Reply

Marsh Posté le 23-06-2003 à 18:05:12    

Taiche a écrit :


J'en ai peur. En même temps, GIF c'est un format propriétaire, donc bof. PNG roulaize.


Ca tombe bientot dans le domaine public :)
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 23-06-2003 à 18:07:48    

Master_Jul a écrit :

le png c'est bien pour faire des captures d'écran windows mais avec des photos, ça bouffe pas à mort comparé à du gif / jpg ?


 
le PNG est mieux que le GIF dans TOUS les cas, sauf :
- images minuscules genre ":)" où on a par ex 1 Ko au lieu de 0.8 Ko :D
- images animées (-> MNG -> y a que Mozilla qui le supporte)


Message édité par antp le 23-06-2003 à 18:08:10

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-06-2003 à 18:23:54    

antp a écrit :


 
le PNG est mieux que le GIF dans TOUS les cas, sauf :
- images minuscules genre ":)" où on a par ex 1 Ko au lieu de 0.8 Ko :D
- images animées (-> MNG -> y a que Mozilla qui le supporte)


 
oui, j'avais déjà été voir ta page ;) ça parlait que ce n'était pas le top pour les images 16M mais comparé au JPEG, c'est ça que j'avais omis, et en réduisant une 16M en 256 couleurs, qui gagne entre gif et png ?


---------------
En français, on écrit "connexion", pas "connection".
Reply

Marsh Posté le 23-06-2003 à 18:30:04    

gilou a écrit :


Ca tombe bientot dans le domaine public :)
A+,


Vi, j'ai vu, depuis quelques jours à peine :) Donc p'têt qu'une prochaine version de GD va implémenter tout ça. En plus, ils ont le code déjà tout prêt en piochant dans les versions < 1.6 [:ddr555]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 23-06-2003 à 18:47:29    

Master_Jul a écrit :

et en réduisant une 16M en 256 couleurs, qui gagne entre gif et png ?


 
relis mieux la page [:ddr555] (surtout les exemples)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-06-2003 à 19:08:43    

antp a écrit :


 
relis mieux la page [:ddr555] (surtout les exemples)


 

Citation :

À même nombre de couleurs le PNG compresse mieux que le GIF, tout en n'altérant pas la qualité d'image.


 :jap:  :hello:


---------------
En français, on écrit "connexion", pas "connection".
Reply

Marsh Posté le 23-06-2003 à 21:03:53    

un petit up pour ramener au sujet principal qui est de :  
 
enoyer un fichier gif sur le server  [ ça je sais faire ]
l'ouvrir en lecture seule  [ ça, je pense que c'est un fopen ]
l'enregistrer en png  [ ça je sais pas faire ]
pour finalement le redimentionner  [ ça je sais faire en jpg et png, mais en gif, c'est plus chaud, voir plus haut dans le topic ]
 
j'attend vos explications, svp !!


Message édité par xkamui le 23-06-2003 à 21:04:39
Reply

Marsh Posté le 23-06-2003 à 21:47:07    

xkamui a écrit :

un petit up pour ramener au sujet principal qui est de :  
 
enoyer un fichier gif sur le server  [ ça je sais faire ]
l'ouvrir en lecture seule  [ ça, je pense que c'est un fopen ]
l'enregistrer en png  [ ça je sais pas faire ]
pour finalement le redimentionner  [ ça je sais faire en jpg et png, mais en gif, c'est plus chaud, voir plus haut dans le topic ]
 
j'attend vos explications, svp !!


 
Non, ce n'est pas avec fopen que tu lis ton image. Relis les exemples d'utilisation de la librairie GD dans le manuel php. ;)
 
Pour ouvrir ton gif, c'est imagecreatefromgif
 
Pour l'enregistrer ensuite, c'est imageJpeg pour du Jpeg et ImagePNG pour du PNG.
 
Relis la doc, ya plein d'exemples dedant espèce de faignant ;)

Reply

Marsh Posté le 23-06-2003 à 22:37:43    

en fait, j'arrive à lire mon image gif... enfin autant que ma version de php ne le permette, car, rappellons-le :  

Note : Etant donné que toutes les fonctions de gestion des GIF ont été supprimées de la bibliothèque GD version 1.6, cette fonction n'est pas disponible si vous utilisez cette version de la librairie.


 
mais ensuite, lors du passage en png, et de l'affichage de l'image de l'image, il me crée un fichier *.gif, et essaye de lire le même type de fichier...
 
je vous met un bout de mon code, pour plus de clarté dans mes propos :  
 

Code :
  1. // définition des variables images
  2. $pic_size=$_FILES['pic']['size'];
  3. $pic_type=$_FILES['pic']['type'];
  4. $pic_name=$_FILES['pic']['name'];
  5. $folder="../../../url/sortie/files/".$ref."/";
  6. // Redimentionnement de l'image
  7. if ($pic_width[0]>$pic_width[1])
  8. {
  9.  $new_w=100;
  10.  $new_h=(($pic_width[1]*$new_w)/$pic_width[0]);
  11. }
  12. if ($pic_width[1]>$pic_width[0])
  13. {
  14.  $new_h=100;
  15.  $new_w=(($pic_width[0]*$new_h)/$pic_width[1]);
  16. }
  17. $dst_img=ImageCreate($new_w,$new_h);
  18. if ($pic_type=="image/pjpeg" ) { $src_img=ImageCreateFromJpeg($pic); }  // cas d'un fichier en jpg, jpe, jpeg
  19. if ($pic_type=="image/x-png" ) { $src_img=ImageCreateFromPng($pic); }  // cas d'un fichier en png
  20. if ($pic_type=="image/gif" )   { $src_img=ImageCreateFromGif($pic); }  // cas d'un fichier en gif
  21. ImageCopyResized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));
  22. if ($pic_type=="image/pjpeg" ) { ImageJpeg($dst_img, "th_".$pic_name); }  // cas d'un fichier en jpg, jpe, jpeg
  23. if ($pic_type=="image/x-png" ) { ImagePng($dst_img, "th_".$pic_name);  }  // cas d'un fichier en png
  24. if ($pic_type=="image/gif" )   { ImagePng($dst_img, "th_".$pic_name);  }  // cas d'un fichier gif
  25. echo "<img src=\"th_".$pic_name."\" />";

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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