Upload d'images + réduction

VNK6000
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 7
Inscription: 24 Oct 2005

Upload d'images + réduction

Message le Lun Oct 24, 2005 9:24

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


dmathieu
Modérateur
Modérateur
 
Messages: 7245
Inscription: 9 Jan 2004

Message le Lun Oct 24, 2005 9:40

pour récuperer la taille de l'image, c'est la fonction getimagesize();
qui prends comme argument l'adresse vers ton image
et qui te retourne un tableau contenant la largeur, et la hauteur de ton image.

pour rétrécir une image, je te propose ceci :
créer une vignette à partir d'une image

VNK6000
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 7
Inscription: 24 Oct 2005

Message le Lun Oct 24, 2005 10:17

KaZhaR a écrit:pour récuperer la taille de l'image, c'est la fonction getimagesize();
qui prends comme argument l'adresse vers ton image
et qui te retourne un tableau contenant la largeur, et la hauteur de ton image.

pour rétrécir une image, je te propose ceci :
créer une vignette à partir d'une image


Et comment l'integrer a mon Up d'images :( ?

Merci d'avance


dmathieu
Modérateur
Modérateur
 
Messages: 7245
Inscription: 9 Jan 2004

Message le Lun Oct 24, 2005 10:19

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.


e-kiwi
Modérateur
Modérateur
 
Messages: 15544
Inscription: 23 Déc 2003

Message le Lun Oct 24, 2005 10:23

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>";

}

VNK6000
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 7
Inscription: 24 Oct 2005

Message le Lun Oct 24, 2005 10:51

e-kiwi merci pour le code mais je place ca comment dans une formulaire ?

Sur 1 page seulement ?

Merci d'avance

dogsandyou
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 48
Inscription: 2 Aoû 2005

Message le Lun Oct 24, 2005 13:30

C'est au choix, c'est à toi de voir si tu veux séparer appel de fonction et fonction elle-même dans un include à part.


e-kiwi
Modérateur
Modérateur
 
Messages: 15544
Inscription: 23 Déc 2003

Message le Lun Oct 24, 2005 14:38

moi j'ai ma fonction dans mon fichier fonctions.php :-)

l'appel se fait sur la page de validation


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité