Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1035 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Envoi d'image apr formulaire et redimensionnement

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Envoi d'image apr formulaire et redimensionnement

n°839067
tellier
Posté le 01-09-2004 à 18:52:57  profilanswer
 

Voila, sur mon site web, chaque utilisateur peut envoyer une image a partir d'un formulaire en gise d'avatar. Le probleme est que les utilisateur ne font pas attention et mettent des images enormes.
 
J'aimerais bien pouvoir redimensionné une images avant de lenregistrer
 
Est-ce que qqn aurait une solution pour faire cela?
 
merci

mood
Publicité
Posté le 01-09-2004 à 18:52:57  profilanswer
 

n°839070
Hermes le ​Messager
Breton Quiétiste
Posté le 01-09-2004 à 18:56:04  profilanswer
 

tellier a écrit :

Voila, sur mon site web, chaque utilisateur peut envoyer une image a partir d'un formulaire en gise d'avatar. Le probleme est que les utilisateur ne font pas attention et mettent des images enormes.
 
J'aimerais bien pouvoir redimensionné une images avant de lenregistrer
 
Est-ce que qqn aurait une solution pour faire cela?
 
merci


 
Tu lis la doc très bien faite de PHP avec les exemples. C'est suffisant et pas mal pour comprendre aussi. ;)

n°839076
kalex
Posté le 01-09-2004 à 19:07:24  profilanswer
 

La fonction barbare que j'ai faite (non y pas de commentaire :whistle:) :

Code :
  1. function img_resize($name, $image, $size, $r_width = 160, $r_height = 120){
  2. $width = $size[0];
  3. $height = $size[1];
  4. if($size[2] == 1)
  5.  $img = imagecreatefromgif($image);
  6. elseif($size[2] == 2)
  7.  $img = imagecreatefromjpeg($image);
  8. elseif($size[2] == 3)
  9.  $img = imagecreatefrompng($image);
  10. if(!isset($img)) return FALSE;
  11. $scale = $height / $width;
  12. $r_scale = $r_height / $r_width;
  13. if($scale < $r_scale){
  14.  $per = $scale * 100 / $r_scale;
  15.  $r_height = round($r_height * $per / 100);
  16. }elseif($scale > $r_scale){
  17.  $per = $r_scale * 100 / $scale;
  18.  $r_width = round($r_width * $per / 100);
  19. }
  20. $new = imagecreatetruecolor($r_width, $r_height);
  21. if(imagecopyresampled($new, $img, 0, 0, 0, 0, $r_width, $r_height, $width, $height)){
  22.  if($size[2] == 1)
  23.   imagegif($new, '../img/small/'.$name);
  24.  elseif($size[2] == 2)
  25.   imagejpeg($new, '../img/small/'.$name, 80);
  26.  elseif($size[2] == 3){
  27.          imagetruecolortopalette($new, FALSE, 180);
  28.   imagepng($new, '../img/small/'.$name);
  29.  }
  30.  return TRUE;
  31. }else
  32.  return FALSE;
  33. }


Oui oui, c'est codé vite fait. :o

n°839085
kalex
Posté le 01-09-2004 à 19:19:27  profilanswer
 

Au fait $size et le tableau retourné par getimagesize('image.ext').

n°839320
tellier
Posté le 01-09-2004 à 23:34:09  profilanswer
 

bon jai reussi a me faire un script de redimensionnement mais j'ai un probleme:
 
la miniature créée sort en noir et blanc et de tres mauvaise qualité. Pourtant avec la fonction imagejpeg avec une qualité de 100
 
Qqn sait comment améliorer cela?


Message édité par tellier le 01-09-2004 à 23:34:33
n°839325
tellier
Posté le 01-09-2004 à 23:47:29  profilanswer
 

voila mon script:
 

Code :
  1. function goResize($isSource,$isDestination,$isName)
  2. {
  3. $iaSize = getimagesize($isSource);
  4. $iiRealWidth = $iaSize[0];
  5. $iiRealHeight = $iaSize[1];
  6. $iiImageType = $iaSize[2];
  7. if($iiRealWidth > $iiRealHeight)
  8. {
  9.  $iiScale = $iiRealWidth / $iiRealHeight;
  10.  $iiDestWidth = 150;
  11.  $iiDestHeight = round($iiDestWidth / $iiScale,0);
  12. }
  13. if($iiRealWidth < $iiRealHeight)
  14. {
  15.  $iiScale = $iiRealHeight / $iiRealWidth;
  16.  $iiDestHeight = 150;
  17.  $iiDestWidth = round($iiDestHeight / $iiScale,0);
  18. }
  19. if($iiRealWidth == $iiRealHeight)
  20. {
  21.  $iiDestWidth = 150;
  22.  $iiDestHeight = 150;
  23. }
  24. //image du type JPG
  25. if($iiImageType == 2)
  26. {
  27.  $ioImage = imagecreatefromjpeg($isSource);
  28.  $ioTempImage = imagecreate($iiDestWidth,$iiDestHeight);
  29.  imagecopyresized($ioTempImage,$ioImage,0,0,0,0,$iiDestWidth,$iiDestHeight,$iiRealWidth,$iiRealHeight);
  30.  imagejpeg($ioTempImage,$isDestination.'m'.$isName,70);
  31. }
  32. }

n°839328
tellier
Posté le 01-09-2004 à 23:54:26  profilanswer
 

OK mais ca changera koi? je gagne en temps d'éxécution? Je met des if moi car je trouve ca plus lisible (avis perso), mais si y a un gain de temps ok!

n°839330
pains-aux-​raisins
Fatal error
Posté le 01-09-2004 à 23:57:43  profilanswer
 

remplacer imagecopyresized par imagecopyresampled  non ?

n°839332
tellier
Posté le 02-09-2004 à 00:01:53  profilanswer
 

nan ca change rien avec imagecopyresampled.


Message édité par tellier le 02-09-2004 à 00:03:28
n°839334
pains-aux-​raisins
Fatal error
Posté le 02-09-2004 à 00:07:38  profilanswer
 

remplacer imagecreate par imagecreatetruecolor  non ?


Message édité par pains-aux-raisins le 02-09-2004 à 00:07:52
mood
Publicité
Posté le 02-09-2004 à 00:07:38  profilanswer
 

n°839338
pains-aux-​raisins
Fatal error
Posté le 02-09-2004 à 00:12:39  profilanswer
 

+1

n°839340
tellier
Posté le 02-09-2004 à 00:18:59  profilanswer
 

merci!
imagecreatetruecolor marche comme je veux! merci a vous!

n°839356
veryfree
Posté le 02-09-2004 à 00:39:30  profilanswer
 

drapal :o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Envoi d'image apr formulaire et redimensionnement

 

Sujets relatifs
JS : Nom du formulaire actuelle ?[PHP/SQL] Recuperer la clé d'un enregistrement
taille d'image pour fonction PHPformulaire PDF
[PHP/dédié] Problème de mail ( expediteur = nobody@monserveur.com )envoi info à un ou word à partir du php - touche F1, F2 ???
[PHP] Modifier JBrowser pour visualiser les images d'un autre serveur[PHP] Envoyer un mail crypter avec PGP/GPG
Plus de sujets relatifs à : [PHP] Envoi d'image apr formulaire et redimensionnement


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR