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);
}
?>
<!----------------------------------- ------------------------------------------->