begin process at 2008 07 21 00:40:48
1 213 538 membres
7 nouveaux aujourd'hui
14 167 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

REDIMENSIONNEMENT D'IMAGE JPG


Information sur la source

Catégorie :Graphique Niveau : Débutant Date de création : 17/03/2004 Vu : 8 345

Note :
5,33 / 10 - par 3 personnes
5,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

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

  • <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'>";
  • }
<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...
  • signaler à un administrateur
    Commentaire de ludovicanceaux le 08/04/2006 21:58:07

    je ne comprend pas ce ke tu ve dire par action="upload2.php" c koi cette feuille??????

  • signaler à un administrateur
    Commentaire de bonjovi51 le 24/05/2006 12:20:01

    Excuse-moi!! en fait upload2.php peut-être enlevé.

    Mais tu peux mettre le code php dans un fichier. Bref, soit tu mets le code dans la même page et tu enlèves upload2.php soit tu créés un fichier php avec le code et tu mets le nom du fichier que tu as choisi.

  • signaler à un administrateur
    Commentaire de ludovicanceaux le 24/05/2006 23:39:40

    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

  • signaler à un administrateur
    Commentaire de liko le 02/06/2006 09:34:45

    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 ?

  • signaler à un administrateur
    Commentaire de bonjovi51 le 02/06/2006 09:43:26

    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.

  • signaler à un administrateur
    Commentaire de ronanry le 16/06/2008 10:27:28

    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

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Boutique

Boutique de goodies CodeS-SourceS