Script de redimensionnement photos/images

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par beber24, 21 Février 2007.

  1. beber24
    beber24 WRInaute discret
    Inscrit:
    3 Février 2006
    Messages:
    180
    J'aime reçus:
    0
    Bonjour à tous,

    Je cherche un script permettant de redimensionner à la volée les photos exactement comme cette page :

    *ww.webmycar.net/myscripts/image-reduction.php

    Ca existe ?
     
  2. dd32
    dd32 WRInaute accro
    Inscrit:
    9 Septembre 2005
    Messages:
    2 705
    J'aime reçus:
    0
  3. maniT4c
    maniT4c WRInaute occasionnel
    Inscrit:
    28 Janvier 2005
    Messages:
    455
    J'aime reçus:
    0
  4. beber24
    beber24 WRInaute discret
    Inscrit:
    3 Février 2006
    Messages:
    180
    J'aime reçus:
    0
    Merci DD32 !!!

    le premier est presque parfait sauf que je n'arrive pas mettre plus que 300 ko en upload ... Y a t'il une solution pour augmenter ? Encore merci DD32 !

    Code:
    <?
    /*
    Générateur de vignettes en PHP - v1.2
    Didier - www.ASP-PHP.net
    */
    
    // GESTION DU TÉLÉCHARGEMENT
    
    if(!empty($_GET["dwn"])) {
       if(!strpos(" ".$_GET["dwn"],"..")) { // protection ;)
          header("content-type: application/octet-stream");
          $f = substr($_GET["dwn"],strrpos($_GET["dwn"],"/")+1);
          header("Content-Disposition: attachment; filename=".$f);
          flush(); // Envoie le buffer
          readfile($_GET["dwn"]);   
       }
    
    // CREATION DE LA VIGNETTE
    
    } else {
    
    function redimage($img_src,$img_dest,$dst_w,$dst_h) {
       // Lit les dimensions de l'image
       $size = GetImageSize($img_src);  
       $src_w = $size[0]; $src_h = $size[1];  
       // Teste les dimensions tenant dans la zone
       $test_h = round(($dst_w / $src_w) * $src_h);
       $test_w = round(($dst_h / $src_h) * $src_w);
       // Si Height final non précisé (0)
       if(!$dst_h) $dst_h = $test_h;
       // Sinon si Width final non précisé (0)
       elseif(!$dst_w) $dst_w = $test_w;
       // Sinon teste quel redimensionnement tient dans la zone
       elseif($test_h>$dst_h) $dst_w = $test_w;
       else $dst_h = $test_h;
    
       // La vignette existe ?
       $test = (file_exists($img_dest));
       // L'original a été modifié ?
       if($test)
          $test = (filemtime($img_dest)>filemtime($img_src));
       // Les dimensions de la vignette sont correctes ?
       if($test) {
          $size2 = GetImageSize($img_dest);
          $test = ($size2[0]==$dst_w);
          $test = ($size2[1]==$dst_h);
       }
    
       // Créer la vignette ?
       if(!$test) {
          // Crée une image vierge aux bonnes dimensions
          // $dst_im = ImageCreate($dst_w,$dst_h);
          $dst_im = ImageCreateTrueColor($dst_w,$dst_h); 
          // Copie dedans l'image initiale redimensionnée
          $src_im = ImageCreateFromJpeg($img_src);
          // ImageCopyResized($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
          ImageCopyResampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
          // Sauve la nouvelle image
          ImageJpeg($dst_im,$img_dest);
          // Détruis les tampons
          ImageDestroy($dst_im);  
          ImageDestroy($src_im);
       }
    
       // Affiche le descritif de la vignette
       echo "SRC='".$img_dest."?t=".time()."' WIDTH=".$dst_w." HEIGHT=".$dst_h;
    }
    
    // AFFICHAGE DE LA PAGE
    
    ?><HTML><HEAD><TITLE>Générateur de vignettes</TITLE>
       <STYLE>
          td,input { font:normal 8pt Verdana }
       </STYLE>
    </HEAD><BODY bgcolor=#FFFFFF>
    
       <center><table width=100% height=100%><tr>
          <td align=center>
    
             <font size=4>Désignez une image .JPG</font> <i>(300 Ko max.)<br>
    
    <? // GESTION DE L'UPLOAD
    
    $rep="./"; // Répertoire de stockage (doit avoir les droits d'écriture ! CHMOD)
    $f = $rep."original.jpg"; // path du fichier original
    
    if(isset($_FILES['photo'])) {
       if($_FILES['photo']['size']>0) {
          if(strtolower(substr($_FILES['photo']['name'],-4))!=".jpg") { ?>
               <b>Ce n'était pas un .JPG !</b>
          <? } elseif (!move_uploaded_file($_FILES['photo']['tmp_name'], $f)) { ?>
               <b>Erreur d'enregistrement !</b>
          <? }
       } else { ?>
          <b>Trop gros fichier !</b>
       <? }
    }?>
             <table><FORM METHOD="POST" ENCTYPE="multipart/form-data">
                <INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=<? echo 300*1024;?>>
                <tr><td align=center><INPUT TYPE=FILE NAME="photo"></td></tr>
                <tr><td align=center><INPUT TYPE=SUBMIT value="Générer la vignette"></td></tr>
             </FORM></table>
    
    <? // AFFICHAGE DE LA VIGNETTE ET DES INFOS
    
    $f2 = $rep."vignette.jpg"; // path de la vignette
    $largeur=150; if(!empty($_GET["largeur"])) $largeur = $_GET["largeur"];
    $hauteur=150; if(!empty($_GET["hauteur"])) $hauteur = $_GET["hauteur"];
    
       if(file_exists($f)) { ?>
    
             <table border=0 cellspacing=5 cellpadding=0><tr>
                <td>
                   <center><b>Original</b></center><br>
                   Poids : <?echo round(filesize($f)/1024)?> Ko<br>
                   Taille : <?
                      $size = GetImageSize($f);
                      echo $size[0]."x".$size[1]; ?><br>
                   <br><center>
                      <A href="vignette.php?dwn=<?echo $f?>">Télécharger</A>
                   </center>
                </td><td align=center>
                   <IMG <? redimage($f,$f2,$largeur,$hauteur)?>>
                </td><td>
                   <center><b>Vignette</b></center><br>
                   Poids : <?echo round(filesize($f2)/1024)?> Ko<br>
                   Taille : <?
                      $size = GetImageSize($f2);
                      echo $size[0]."x".$size[1]; ?><br>
                   <br><center>
                      <A href="vignette.php?dwn=<?echo $f2?>">Télécharger</A>
                   </center>
                </td>
             </tr><tr>
    
    <? // CHOIX DES DIMENSIONS DE LA VIGNETTE
    ?>
                <form><td colspan=3 align=center>
                   <table><tr>
                      <td>Largeur :</td>
                      <td><select name="largeur">
                         <?for($i=10;$i<=150;$i+=10) {
                            echo "<option";
                            if($i==$largeur) echo " SELECTED";
                            echo ">".$i."</option>\n";
                         } ?>
                      </select></td>
                      <td>Hauteur :</td>
                      <td><select name="hauteur">
                         <?for($i=10;$i<=150;$i+=10) {
                            echo "<option";
                            if($i==$hauteur) echo " SELECTED";
                            echo ">".$i."</option>\n";
                         } ?>
                      </select></td>
                      <td><input type=submit value=Modifier></td>
                </td></form>
             </tr></table>
    
       <? } ?>
    
          </td>
       </tr></table></center>
    
    </BODY></HTML><?
    
    } ?>
     
  5. ACth
    ACth WRInaute impliqué
    Inscrit:
    11 Novembre 2006
    Messages:
    686
    J'aime reçus:
    0
    As-tu cherché à comprendre un petit peu le système ?
     
  6. beber24
    beber24 WRInaute discret
    Inscrit:
    3 Février 2006
    Messages:
    180
    J'aime reçus:
    0
    Oui

    J'ai essayer de modifier evidemment la ligne :

    Code:
    <INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=<? echo 300*1024;?>> 
    en mettant 3000 par exemple mais je tombe en erreur :

    Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 6400 bytes) in /..../redim.php on line 55
     
  7. ACth
    ACth WRInaute impliqué
    Inscrit:
    11 Novembre 2006
    Messages:
    686
    J'aime reçus:
    0
    -

    Voila une page sur la gestion de chargement de fichiers qui est très explicite.
    Ainsi tu devrais pouvoir "maitriser" ton sujet.

    La documentation de PHP est vraiment très bien faite, tu y apprends beaucoup,
    notamment grâce aux exemples et / ou commentaires.

    Bonne chance.
     
  8. beber24
    beber24 WRInaute discret
    Inscrit:
    3 Février 2006
    Messages:
    180
    J'aime reçus:
    0
    Ok merci !

    En fait il suffit d'augmenter la taille du memory_limit = 16M dans le php.ini et le tour et joué merci beaucoup à vous tous !
     
  9. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    >> je n'arrive pas mettre plus que 300 ko en upload
    surement une limite de ton hebergeur
     
  10. beber24
    beber24 WRInaute discret
    Inscrit:
    3 Février 2006
    Messages:
    180
    J'aime reçus:
    0
    En fait j'ai mis memory_limit = 32M dans php.ini max de mon hébergeur et j'ai modifié :

    en

    Et ainsi je peux aller jusqu'à 2MO ! C'est super je vous remercie beaucoup et hop un service de plus pour mes visiteurs !
     
Chargement...
Similar Threads - Script redimensionnement photos Forum Date
Le javascript protège-t-il du copiage HTML ? Développement d'un site Web ou d'une appli mobile 9 Mai 2022
Sites de scripts PHP, jQuery, Ajax, etc. Le café de WebRankInfo 20 Mars 2022
Tester une URL avec Javascript Développement d'un site Web ou d'une appli mobile 25 Février 2022
jour en javascript Développement d'un site Web ou d'une appli mobile 24 Février 2022
Search Console Probleme Meta title & Meta description fiche produit Référencement Google 27 Janvier 2022
référencement site full javascript Débuter en référencement 17 Janvier 2022
Script "haut de page". Développement d'un site Web ou d'une appli mobile 4 Janvier 2022
Détecter arrêt user d'un script PHP ? Développement d'un site Web ou d'une appli mobile 28 Décembre 2021
Astuce Référencement Playstore et pré inscription Référencement Google 17 Décembre 2021
Problèmes dans le méta-titre / description + Sitemap Référencement Google 29 Novembre 2021
Même contenu descriptif vidéo Youtube et fiche produit site Débuter en référencement 26 Novembre 2021
Texte de meta description erroné Demandes d'avis et de conseils sur vos sites 25 Novembre 2021
Google réécrit la meta description Référencement Google 21 Novembre 2021
Duplicate content sur la meta description Débuter en référencement 14 Novembre 2021
Combien de mots pour des descriptions de fiches produit Référencement Google 5 Novembre 2021
Javascript et preloader Référencement Google 16 Septembre 2021
Actualiser un script php toutes les 10 secondes Développement d'un site Web ou d'une appli mobile 6 Septembre 2021
Javascript API cache query non url ? Développement d'un site Web ou d'une appli mobile 18 Août 2021
Meta description vide dans Google mais ok dans Bing Problèmes de référencement spécifiques à vos sites 6 Juillet 2021
Aucune inscription sur mon forum Débuter en référencement 8 Mai 2021