Redimensionnement d'image jpg

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 588 fois - Téléchargée 28 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

Messages postés
4
Date d'inscription
vendredi 22 décembre 2006
Statut
Membre
Dernière intervention
30 décembre 2008

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
Messages postés
190
Date d'inscription
lundi 25 novembre 2002
Statut
Membre
Dernière intervention
22 décembre 2009

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
Messages postés
51
Date d'inscription
vendredi 24 janvier 2003
Statut
Membre
Dernière intervention
14 décembre 2006

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.
Messages postés
7
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
24 mai 2011

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 ?
Messages postés
440
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2010
1
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.