rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Retaille image minimum et maxi en php

  stefart, le mardi 10 juin 2008 à 17:05:28
Bonjour,

voila j'ai recuperé un script en php qui marche tres bien mais je souhaiterai le modifier et je ne sais pas trop comment faire.
Actuellement le script upload des images dans un dossier spécifique et redimensionne une miniature dans un autre dossier
Moi je souhaiterai qu'il redimensionne aussi la grande img maxi 500px par exemple et ensuite qu'il l'enregistre dans le dossier voir même dans MySql histoire d'ajouter des commentaires ...

voici donc le script en question :


<?php
// on défini le répertoire où sont stockées les images de grande taille  
$dir = '../images_upload/diapo2007';  

// on défini le répertoire où seront stockées les miniatures  
$dir_mini = '../images_upload/diapo2007_mini';  

// on défini une variable $ratio  (150 pixels). En fait, pour nos miniatures, nous allons respecter le ratio de l'image originale, mais nous allons forcer sa taille à 150 pixels, soit en hauteur soit en largeur (tout dépend de l'orientation de notre image : paysage ou portrait).  
$ratio = 150;  

// on défini une variable $ratio2  (500 pixels). idem que pour ratio2 mais pour la grande image.  

$ratio2 = 500; 
 
// on teste si le formulaire permettant d'uploader un fichier a été soumis  
if (isset($_POST['go'])) { 
   // on teste si le champ permettant de soumettre un fichier est vide ou non 
   if (empty($_FILES['mon_image']['tmp_name'])) { 
      // si oui, on affiche un petit message d'erreur 
      $erreur = '<h1>Aucun fichier envoyé.</h1>'; 
   } 
   else { 
      // on examine le fichier uploadé en récupérant de nombreuses informations sur ce fichier (je vous suggère de regarder la documentation de la fonction getimagesize pour de plus amples informations) 
      $tableau = @getimagesize($_FILES['mon_image']['tmp_name']); 
      if ($tableau == FALSE) { 
         // si le fichier uploadé n'est pas une image, on efface le fichier uploadé et on affiche un petit message d'erreur 
         unlink($_FILES['mon_image']['tmp_name']); 
         $erreur = '<h1>Votre fichier n\'est pas une image.</h1>'; 
      } 
      else { 
         // on teste le type de notre image : jpeg ou png 
         if ($tableau[2] == 2 || $tableau[2] == 3) { 
            // si on a déjà un fichier qui porte le même nom que le fichier que l'on tente d'uploader, on modifie le nom du fichier que l'on upload 
            if (is_file('../images_upload/diapo2007/'.$_FILES['mon_image']['name'])) $file_upload = '_'.$_FILES['mon_image']['name']; 
            else $file_upload = $_FILES['mon_image']['name']; 
 
            // on copie le fichier que l'on vient d'uploader dans le répertoire des images de grande taille 
            copy ($_FILES['mon_image']['tmp_name'], $dir.'/'.$file_upload); 
 
            // il nous reste maintenant à générer la miniature 
 
            // si notre image est de type jpeg 
            if ($tableau[2] == 2) { 
               // on crée une image à partir de notre grande image à l'aide de la librairie GD 
               $src = imagecreatefromjpeg($dir.'/'.$file_upload); 
               // on teste si notre image est de type paysage ou portrait 
               if ($tableau[0] > $tableau[1]) { 
                  $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio); 
                  imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]); 
               } 
               else { 
                  $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1])); 
                  imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]); 
               } 
               // on copie notre fichier généré dans le répertoire des miniatures 
               imagejpeg ($im, $dir_mini.'/'.$file_upload); 
            } 
            elseif ($tableau[2] == 3) { 
               $src = imagecreatefrompng($dir.'/'.$file_upload); 
               if ($tableau[0] > $tableau[1]) { 
                  $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio); 
                  imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]); 
               } 
               else { 
                  $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1])); 
                  imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]); 
               } 
               imagepng ($im, $dir_mini.'/'.$file_upload); 
            } 
            // on redirige l'administrateur vers l'accueil de la partie admin 
            header('location:diapo2007.php'); 
            exit(); 
         } 
         else { 
            // si notre image n'est pas de type jpeg ou png, on supprime le fichier uploadé et on affiche un petit message d'erreur 
            unlink($_FILES['mon_image']['tmp_name']); 
            $erreur = '<h1>Votre image est d\'un format non supporté.</h1>'; 
         } 
      } 
   }  
}  
 
// on teste si le formulaire permettant de supprimer un fichier à été soumis  
if (isset($_GET['del'])) { 
   if (empty($_GET['del'])) { 
      // si le paramètre n'est pas renseignée, on affiche un petit message d'erreur 
      $erreur = '<h1>Aucune image à supprimer</h1>'; 
   } 
   else { 
      $pic_a_zapper = $_GET['del']; 
      // si l'image existe ainsi que sa miniature, on les supprime 
      if (is_file('../images_upload/diapo2007_mini/'.$pic_a_zapper) && is_file('../diapo/'.$pic_a_zapper)) { 
         unlink('../images_upload/diapo2007_mini/'.$pic_a_zapper); 
         unlink('../images_upload/diapo2007/'.$pic_a_zapper); 
      } 
      // si l'image ou la miniature n'existe pas, on affiche un message d'erreur 
      else { 
         $erreur = '<h1>Image non reconnue</h1>'; 
      } 
   }  
}  
?>




merci de votre aide
Configuration: Windows XP
Firefox 2.0.0.14
Répondre à stefart  Signaler ce message aux modérateurs
Logiciels pertinents trouvés dans les téléchargements
Télécharger Image Resizer 1Image Resizer - Petit utilitaire (PowerToy) basique, très simple, permettant de réduire la taille d'une image, dans le but, notamment, de...Catégorie: Graphisme
Licence: Freeware/gratuit
Télécharger ImageWell 3.5.3ImageWell - ImageWell n'est pas à proprement parler un logiciel de Retouche photo. Il permet plutôt de préparer des images pour le...Catégorie: Retouche photo
Licence: Freeware/gratuit
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Télécharger VSO Image Resizer 2.0.1.9VSO Image Resizer - Le logiciel VSO Image Resizer organise vos photos en réduisant leur résolution et en les déplaçant facilement au sein de...Catégorie: Graphisme
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « retaille image minimum et maxi en php »