2012-08-29 2 views
-1

Possible en double:
Calculating image size ratio for resizingPHP Redimensionner avec des proportions

J'ai un simple script de téléchargement qui redimensionne la photo téléchargée, je voudrais forcer la taille de la largeur, et laisser la la hauteur est automatiquement proportionnée.

Voici mon script de téléchargement:

if (isset($_POST['upload'])) { 
     $dirupload = "../images/"; 
     $dirupload = $dirupload . basename($_FILES['image-upload']['name']); 
     $useless = $_POST['useless']; 
     $imageupload = ($_FILES['image-upload']['name']); 
     $uploadedfileupload = $_FILES['image-upload']['tmp_name']; 
     $uploadedfiletypeupload = $_FILES['image-upload']['type']; 

     $query_add="SELECT * FROM produits ORDER BY position"; 
     $result_add=mysql_query($query_add); 
     $num_add=mysql_num_rows($result_add); 
     $add_add=$num_add+1; 

     if (!($uploadedfiletypeupload =="image/pjpeg" OR $uploadedfiletypeupload =="image/jpeg" OR $uploadedfiletypeupload =="image/jpg")){ 
      echo "L'image doit être en .jpg ou .jpeg"; 
     }else if (move_uploaded_file($_FILES['image-upload']['tmp_name'], $dirupload)){  
      $sql="INSERT INTO produits (position) VALUES ('$add_add')"; 
      if (!mysql_query($sql,$con)){ 
       die('Error: ' . mysql_error()); 
      }  


      $newnameupload = "../images/produit" . mysql_insert_id() . ".jpg"; 
      rename ("../images/$imageupload","$newnameupload");  
      $orig_imageupload = imagecreatefromjpeg("../image/$newnameupload"); 
      $sm_imageupload = imagecreatetruecolor(274,219); 
      imagecopyresampled($sm_imageupload,$orig_imageupload,0,0,0,0,274,219,imagesx($orig_imageupload),imagesy($orig_imageupload)); 
      imagejpeg($sm_imageupload, $newnameupload, 100); 

     }else{ 
      echo "Un probleme est survenue"; 
     } 
    } 

Des idées à essayer d'obtenir que cela fonctionne? (oui, j'ai la hauteur définie pour le moment dans le script)

Merci d'avance!

+1

Quel est le problème avec votre script? – Tchoupi

+0

Rien ne va pas avec le script, je voudrais juste aussi voir comment seulement définir la largeur et laisser la hauteur automatiquement proportionnée. – user1619359

+0

Il existe de nombreuses bibliothèques de contrôle d'image pour PHP, vous pouvez en chercher une et l'utiliser. Il sera redimensionné avec des proportions ou recadrer pour remplir les espaces vides et ainsi de suite. – Valdas

Répondre

1

Calculer la largeur au facteur de la hauteur comme

$factor = $height /$width;

puis

$newHeight = $newWidth * $factor; 
1

Je pense que le meilleur moyen est d'utiliser une bibliothèque de traitement d'images. Parce que c'est un peu crop-and-resize option. Parfois, l'image ne peut pas être réduite proportionnellement à la taille requise sans recadrage.

Jetez un oeil à:

deux d'entre eux ont intégré des fonctionnalités que vous avez besoin et sont plutôt amical et flexible.

Questions connexes