Redimensionnement d'image jpg

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 960 fois - Téléchargée 30 fois

Contenu du snippet

Ce code permet de ridmensionner une image jpg après un upload. Il y a peut etre beaucoup, mais je n'en ai pas touvé pour cette version du gd.
Il est codé de sorte qu'il soit utilisable pour le gd 1.6.x.

Si vous avez des améliorations à apporter n'hésitez pas de me les faire parvenir.

Source / Exemple :


<form method="post" action="upload2.php" enctype='multipart/form-data'>
<table>
<tr>
 <td><font face="Verdana" size="2"><b>image associée : </b></font></td>
 <td><input type="hidden" name="$maxPoids" value="200000"><input type="file" name="userfile"></td>
</tr>
<tr>
 <td colspan="2">&nbsp;</td>
</tr>
<tr>
 <td align="center" colspan="2"><input type="submit" name="envoyer" value="Valider"></td>
</tr>
</table>
</form>

<?
$repertoire = "images/";
$destination = $repertoire.$userfile_name;
if($userfile_size > $maxTaille || $userfile_size == 0) 
{
   echo "<br><br><font face='Verdana' color='#FF0000'><font  size=4>ERREUR</font><br><br><font size=2><b>La taille du fichier n'est pas correct </b></font>";
}
elseif (!move_uploaded_file($userfile, $destination)) 
{
  echo "<br><br><font face='Verdana' color='#FF0000'><font size=4>ERREUR</font</b></font>";
}
else
{
   //Appelle la fonction de redimensionnement de la photo
   resize($destination);
}
?>

//Redimensionne la photo
function resize($userfile) 
{
  $lenomdufichier=$userfile."\fin";
  $nomfic=explode("\\",$lenomdufichier);
  $i=0;
  while ($nomfic[$i]!="fin")
  $i++;
  $nomfic=$nomfic[$i-1];
  $size = getimagesize($userfile); 
  echo $size[3];  
  //détermine la taille de la miniature
  $dest_width = explode(".",($size[0]/4)); 
  $dest_eight = explode(".",($size[1]/4));
  $src_img = imagecreatefromjpeg($userfile);
  $dst_img = imagecreate($dest_width[0], $dest_eight[0]); 
  imagecopyresized($dst_img, $src_img, 0, 0, 0, 0,$dest_width[0], $dest_eight    [0],$size[0], $size[1]);
  imagejpeg($dst_img,$nomfic, 60);   
  echo "<img src='$nomfic'>";
}

Conclusion :


La qualité de l'image après le redimensionnement n'est pas génial. Mais cela donne un aperçu de ce que l'on puet faire avec un gd autre que celui du 2.x.x

Voila, à une prochaine fois...

A voir également

Ajouter un commentaire Commentaires
kiadimoundi Messages postés 4 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 30 décembre 2008
21 nov. 2008 à 16:42
J'ai un code du même genre, et je voudrais savoir si tu as testé le tien et s'il marche avec des grosses images (supérieures à 1500x1500 pixels) ? Personnellement j'ai des problèmes au niveau de "imagecreatefromjpeg" qui ne s'exécute pas si l'image est trop grande ou trop volumineuse
ronanry Messages postés 190 Date d'inscription lundi 25 novembre 2002 Statut Membre Dernière intervention 22 décembre 2009
16 juin 2008 à 10:27
tres bonne source

si seulement je peux me permettre un petit commentaire au lieu de d=explode(".",valeur) il est plus "propre" d'utiliser une fonction mathetique telle que : d=int(valeur)
ca revient au meme, a la nuance que tu recupere juste la valeur avec le "." sous form de integer et non sous forme de array
bonjovi51 Messages postés 51 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 14 décembre 2006
2 juin 2006 à 09:43
Salut,

Non, tu as juste à redéfinir la variable $maxTaille. La valeur doit être en octet.

Sinon, en ce qui concerne le userfile_size, c'est évdiemment défini automatiquement puisque userfile est un input de type file.

userfile_name = le nom du fichier.
usefile_size = la taille du fichier (en octet).

Voilà. :)

Bonne journée.
cs_liko Messages postés 7 Date d'inscription samedi 29 mars 2003 Statut Membre Dernière intervention 24 mai 2011
2 juin 2006 à 09:34
Moi j'ai pas encore testé mais je m'étonne de quelques trucs. Tu les définis quand et comment ces variables ($userfile_size, $maxTaille et $userfile_size) ? ça les definit automatiquement ?
ludovicanceaux Messages postés 440 Date d'inscription mardi 21 octobre 2003 Statut Membre Dernière intervention 6 mai 2010
24 mai 2006 à 23:39
oki, merci de ta réponse, mais j'avai trouvé la réponse (1 mois après) lol ;-) enfin c'est pas grave bonne soirée
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.