Upload d'images + réduction

Nouveau WRInaute
Bonjour,

Pour l'upload d'images je viens de trouver un tuto :

http://phpcodeur.net/articles/php/upload

Tout marche bien !

Mais voila ce que je voudrais faire en plus :
- Rétréssir l'image automatiquement ! c'est à dire par exemple maximum 400px de longueur et et que la hauteur se réduise aussi :)

- Une fois l'imagé réduite prendre les valeurs de la hauteur et de la longueur et les enregistrer dans ma base de donnée :)

Merci d'avance
 
WRInaute accro
eh bien, tu upload l'image
puis, tu appelle la fonction de reduction avec l'emplacement de l'image d'origine, et l'emplacement de l'image réduite (si c'est le meme, il réduit l'image, et la remet au meme endroit)
ton image est alors réduite
et apres, si tu utilise getimagesize pour récuperer la taille de ton image.
 
WRInaute accro
recuperer une image (gif, jpeg, png) et la copier en jpeg sur le serveur, avec des dimensions max (redimensionnement propre automatique)

l'appel :

---------------------------------------------------------------------------------------------
if(($HTTP_POST_FILES['photo']['name']))
{
$destination = '../donnees/nom_de_la_photo.jpg';
copier_image($photo,$HTTP_POST_FILES['photo']['name'],$destination,250,250);
---------------------------------------------------------------------------------------------

la fonction :

function copier_image($photo,$nom_photo,$destination,$longueur_max,$hauteur_max)
{
// ----extention --------
$ext = explode(".", $nom_photo);
if(count($ext) > 1) $ext = strtolower(end($ext));
if (($ext=='jpg') or ($ext=='jpeg') or ($ext=='jpe'))
{
$type='jpg';
$est_image='oui';
}
else if ($ext=='gif')
{
$type='gif';
$est_image='oui';
}
else if ($ext=='png')
{
$type='png';
$est_image='oui';
}
else $est_image='non';

if ($est_image=='oui')
{
// ----info de l'image
$size = GetImageSize($photo);
if ($type=='jpg') $src_im = ImageCreateFromJpeg($photo);
else if ($type=='gif') $src_im = ImageCreateFromGif($photo);
else if ($type=='png') $src_im = ImageCreateFromPng($photo);
$longueur_photo = $size[0];
$hauteur_photo = $size[1];
//----- si dimensions ok, la copier
if (($longueur_photo<$longueur_max) and ($hauteur_photo<$hauteur_max))
{
if (copy($photo, $destination)) return true;
else return false;
}
else
{
// ----modifier longueur
if ($longueur_photo > $longueur_max)
{
$hauteur_photo=round(($longueur_max / $longueur_photo) * $hauteur_photo);
$longueur_photo=$longueur_max;
}
// ----modifier hauteur
if ($hauteur_photo > $hauteur_max)
{
$longueur_photo=round(($hauteur_max / $hauteur_photo) * $longueur_photo);
$hauteur_photo=$hauteur_max;
}
$dst_im = ImageCreateTrueColor($longueur_photo,$hauteur_photo);
ImageCopyResampled($dst_im,$src_im,0,0,0,0,$longueur_photo,$hauteur_photo,$size[0],$size[1]);
if (ImageJpeg($dst_im,$destination)) echo "";
else echo "<script>alert('ERREUR : Photo $nom_photo non copiée')</script>";
}
}
else echo "<script>alert('Attention : La photo n\'est pas au format valide (jpg, gif, png). elle ne sera donc pas copiée')</script>";

}
 
Discussions similaires
Haut