8796 sujets

Développement web côté serveur, CMS

Bonjour tout le monde,
Au fait, j’ai mon script qui permet de redimensionné une image proportionnellement qui marche bien et qui m'enregistre l'image avec un nom saisie sur une zone de texte sur un

répertoire.

Ce que je voulais modifier, c'est la possibilité de redimensionner la même image 3 fois (avec le nom saisi dans les textbox, et l'enregistré sur le serveur.
Merci pour toute indication qui peut m'aider à compléter mon script


<!------------------------------ page index.php------------------------------------>


<html>
<head></head>
<body>
<!--On affiche le formulaire d'envoi d'une image-->
<center>
<br /><hr />

<form method="post" enctype="multipart/form-data" action="upload.php">
<p>



Le nom de l'image redimensionner avec 171 ,107
<input type="text" name="video"><br><br>



Le nom de l'image redimensionner avec 200 ,200
<input type="text" name="video2"><br><br>


Le nom de l'image redimensionner avec 500 ,500
<input type="text" name="video3"><br><br>

<input type="file" name="fichier" size="30">
<input type="submit" name="upload" value="Uploader">
</p>
</form>
</center>

</body>
</html>

<!------------------------------ fin page index.php------------------------------------>

<!------------------------------ page upload.php------------------------------------>

<?php


$nomImage=$_POST['video'];

if( isset($_POST['upload']) ) // si formulaire soumis
{
$content_dir = 'upload/'; // dossier où sera déplacé le fichier

$tmp_file = $_FILES

['fichier']['tmp_name'];

if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
}

// on vérifie maintenant l'extension
$type_file =

$_FILES['fichier']['type'];

if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'png') && !strstr($type_file, 'bmp') && !strstr($type_file,

'gif') )
{
exit("Le fichier n'est pas une image");
}

// on copie le fichier dans le dossier de destination

$ext = substr($_FILES['fichier']['name'],

strrpos($_FILES['fichier']['name'], '.'));

$name_file = $nomImage.$ext;
echo $name_file;


//fonction pour changer les dimentions des fichiers
function

redimensionner($file, $maxwidth, $maxheight) {
/*
$maxwidth = 171;
$maxheight = 171;
*/
list($rawwidth, $rawheight, $type) = @getimagesize($file);

if ($maxwidth <

$rawwidth && $rawwidth >= $rawheight) {

$width = $maxwidth;

$height = ($width / $rawwidth) * $rawheight;

}

elseif ($maxheight < $rawheight && $rawheight >= $rawwidth) {



$height = $maxheight;

$width = ($height /$rawheight) * $rawwidth;

}

else {

$height = $rawheight;

$width = $rawwidth;

}

$imgbuffer = imagecreatetruecolor($width,

$height);

switch($type) {

case 1: $image = imagecreatefromgif($file); break;

case 2: $image = imagecreatefromjpeg($file); break;

case 3: $image = imagecreatefrompng

($file); break;

case 4: $image = imagecreatefrombmp($file); break;

default: exit("Tried to create thumbnail from $file: not a valid image");

}

if (!$image) exit("Image

creation from $file failed for an unknown reason. Probably not a valid image.");

else {

imagecopyresampled($imgbuffer, $image, 0, 0, 0, 0, $width, $height, $rawwidth,

$rawheight);

imageinterlace($imgbuffer);

switch($type) {




case 1: $image = imagegif($imgbuffer, $file, 80); break;

case 2: $image = imagejpeg

($imgbuffer, $file, 80); break;

case 3: $image = imagepng($imgbuffer, $file, 7); break;



}

}

}


if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) )

{

exit("Nom de

fichier non valide");

}

else if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )

{

exit("Impossible de copier le fichier dans $content_dir");

}

redimensionner

($content_dir.$name_file, 171, 107);

}
?>



<!------------------------------ fin page upload------------------------------------>
Hello jacque99 et bienvenue Smiley smile ,

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace après le crochet ouvrant).

upload/1-code.gif

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne
Perso, j'utilise cette fonction (fctredimimage) pour redimmensionner toutes mes images, vraiment très pratique, et pas besoin de se prendre la tête à ré-inventer la roue !

Avec cette fonction, tu devrais être ravis Smiley cligne (après, c'est que du pur html avec très peu de php pour ton cas Smiley smile )
Modifié par Super_baloo8 (08 Sep 2010 - 13:07)
Bonjour tout le monde,
J’ai reformulé ma question à nouveau
J'ai un scripte pour redimensionner les images proportionnellement, il prend la plus grande valeur (hauteur ou bien largeur) , et il redimensionne l'autre valeur proportionnellement.
Le seul problème sur ce script c'est qu’il ne permet pas de définir longueur max et hauteur max.

Par exemple, je voulais générer une image avec : width max : 171 et height max : 107
Si je prends une image avec les démentions width : 420, et height 298, le redimensionnement proportionnel cava donner :
420 >> 298
171 >> x
x= (298*171)/420= 121 (plus grand que je voulais comme hauteur en max 107).
Ce que j'image faire, mais je ne sais pas encore comment, c'est de lancer une boucle pour obtenir :
H >> W
171 >> 121 (supérieur de mon max, je ne prends pas) je fais H - 1
170 >> 120 (supérieur de mon max, je ne prends pas) je refais H-1
.....................................
.....................................
.....................................
150 >> 107 (<= 107, je le prends)
Ce qui est important pour moi c'est de respecter le redimensionnement proportionnel pou ne pas déformer l'image, et en même temps ne pas dépasser les démentions max.
Je suis à l'écoute de vos commentaires.
Merci d'avance



<!-------------------------------index.php  -------------------------------------->
<html>
<head></head>
<body>
	<!--On affiche le formulaire d'envoi d'une image-->
	<center>
	<br /><hr />

	<form method="post" enctype="multipart/form-data" action="upload.php">
	<p>
	
	
	
	   Le nom de l'image redimensionner avec 95 ,95
	   <input type="text" name="video"><br><br>
	   
	  
	   
	<input type="file" name="fichier" size="30">
	<input type="submit" name="upload" value="Uploader">
	</p>
	</form>
	</center>
	
  </body>
  </html>
<!-----------------------------------  ------------------------------------------->


<!------------------------------- upload.php -------------------------------------->
<?php


$nomImage=$_POST['video'];

if( isset($_POST['upload']) ) // si formulaire soumis
{
    $content_dir = 'upload/'; // dossier où 

sera déplacé le fichier

    $tmp_file = $_FILES['fichier']['tmp_name'];

    if( !is_uploaded_file($tmp_file) )
    {
        exit("Le 

fichier est introuvable");
    }

    // on vérifie maintenant l'extension
    $type_file = $_FILES['fichier']['type'];

    if( !

strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'png') && !strstr($type_file, 'bmp') && !strstr

($type_file, 'gif') )
    {
        exit("Le fichier n'est pas une image");
    }

    // on copie le fichier dans le dossier de 

destination
	
	$ext = substr($_FILES['fichier']['name'], strrpos($_FILES['fichier']['name'], '.'));

	$name_file = 

$nomImage.$ext;
	echo $name_file;


	//fonction pour changer les dimentions des fichiers
  function redimensionner($file, 

$maxwidth, $maxheight) {

list($rawwidth, $rawheight, $type) = @getimagesize($file);

  if ($maxwidth < $rawwidth && $rawwidth >= 

$rawheight) {

    $width = $maxwidth;

    $height = ($width / $rawwidth) * $rawheight;

  }

  elseif ($maxheight < $rawheight && 

$rawheight >= $rawwidth) {

    $height = $maxheight;

    $width = ($height /$rawheight) * $rawwidth;

  }

  else {

    $height = 

$rawheight;

    $width = $rawwidth;

  }

  $imgbuffer = imagecreatetruecolor($width, $height);

  switch($type) {

    case 1: $image = 

imagecreatefromgif($file); break;

    case 2: $image = imagecreatefromjpeg($file); break;

    case 3: $image = imagecreatefrompng

($file); break;

    case 4: $image = imagecreatefrombmp($file); break;

    default: exit("Tried to create thumbnail from $file: not 

a valid image");

  }

  if (!$image) exit("Image creation from $file failed for an unknown reason. Probably not a valid image.");

  

else {

    imagecopyresampled($imgbuffer, $image, 0, 0, 0, 0, $width, $height, $rawwidth, $rawheight);

    imageinterlace

($imgbuffer);

    switch($type) {

	
	
	
      case 1: $image = imagegif($imgbuffer, $file, 80); break;

      case 

2: $image = imagejpeg($imgbuffer, $file, 80); break;

      case 3: $image = imagepng($imgbuffer, $file, 7); break;

  

    }

  }

}


if( 

preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) )

{

  exit("Nom de fichier non valide");

}

  else if( !move_uploaded_file

($tmp_file, $content_dir . $name_file) )

{

  exit("Impossible de copier le fichier dans $content_dir");

} 

redimensionner

($content_dir.$name_file,171, 107);

}
?>

<!-----------------------------------  ------------------------------------------->