tynmar
Messages postés77Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention28 février 2006
-
24 févr. 2006 à 16:03
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 2010
-
28 févr. 2006 à 17:33
Bonjour tout le monde,
J'aimerai modifier la taille d'une image à l'upload. J'ai écrit mon script d'upload et maintenant je n'arive pas à la redimensionner. Je ne souhaite pas garder les proportions mais imposer une largeur et une hauteur, peu importe si l'image se déforme.
Je n'ai trouvé que des choses assez compliquées sur le web.
Voici mon script.
Merci beaucoup
$logo_name = $_FILES['logo_name']['name'];
$taille_octets_max = 10000000;//taille maximum du fichier
if ($logo_name == "none" || !$logo_name){
$logoimg = "";
$error2 = "Vous avez choisi de ne pas afficher de logo";
if(isset($_POST['imgbgor'])){
$error2 = "Vous avez choisi de restaurer le logo d'origine";
$logoimg = "logo_top_left.jpg";
}
}elseif($_FILES['logo_name']['type'] != "image/png" && $_FILES['logo_name']['type'] != "image/jpeg"
&& $_FILES['logo_name']['type'] != "image/pjpeg" && $_FILES['logo_name']['type'] != "image/x-png"
&& $_FILES['logo_name']['type'] != "image/gif"){
$error2="Le fichier doit être un JPEG, un GIF ou un PNG.";
}elseif($_FILES['logo_name']['size'] > $taille_octets_max){
$error2="Le fichier doit peser moins de ".($taille_octets_max/1024)." Ko.";
}
if(!isset($error2)){
$size_img = getimagesize($_FILES['logo_name']['tmp_name']);
$size_img[0] = 256;//redimension de l'image qui marche pas. Il doit manquer pas mal de choses là.
$size_img[1] = 65;
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 24 févr. 2006 à 17:12
Hello,
$size_img = getimagesize($_FILES['logo_name']['tmp_name']);
$size_img[0] = 256;//redimension de l'image qui marche pas. Il doit manquer pas mal de choses là.
$size_img[1] = 65;
Ce serait trop facile si ça marchait comme ça ;-)
Pour redimensionner des images sur ton serveur, tu DOIS passer par GD.
tynmar
Messages postés77Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention28 février 2006 28 févr. 2006 à 16:15
Je dois être vraiment trop con, je n'y arrive pas. Il y a des tonnes de variables et je capte tchi. Je me renseigne sur le GD, mais je persiste à dire que c'est quand même pas évident.
tynmar
Messages postés77Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention28 février 2006 28 févr. 2006 à 16:29
je tiens à dire que les scripts que je trouve me permette de redimmensionner une image sur serveur et pas à l'upload, ce qui n'a rien à voir. Moi j'ai ç pour l'instant, mais je suis vraiment une grosse quiche lorraine en PHP :
$logo_name = $_FILES['logo_name']['name'];
$taille_octets_max = 10000000;//taille maximum du fichier
if ($logo_name == "none" || !$logo_name){
$logoimg = "";
$error2 = "Vous avez choisi de ne pas afficher de logo";
if(isset($_POST['imgbgor'])){
$error2 = "Vous avez choisi de restaurer le logo d'origine";
$logoimg = "logo_top_left.jpg";
}
}elseif($_FILES['logo_name']['type'] != "image/png" && $_FILES['logo_name']['type'] != "image/jpeg"
&& $_FILES['logo_name']['type'] != "image/pjpeg" && $_FILES['logo_name']['type'] != "image/x-png"
&& $_FILES['logo_name']['type'] != "image/gif"){
$error2="Le fichier doit être un JPEG, un GIF ou un PNG.";
}elseif($_FILES['logo_name']['size'] > $taille_octets_max){
$error2="Le fichier doit peser moins de ".($taille_octets_max/1024)." Ko.";
}
if(!isset($error2)){
/*$size_img = getimagesize($_FILES['logo_name']['tmp_name']);
$size_img[0] = 256;
$size_img[1] = 65;
*/
$Source = $_FILES['logo_name']['tmp_name'];
$src_info=getimagesize($Source);
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 28 févr. 2006 à 16:48
Tu ne peux pas redimensionner une image AVANT l'upload...ton image est soit sur le poste client (manquerait plus que tu puisses y accéder, et y modifier une image! Je n'aimerais pas ça moi...toi non plus je pense, si un site pouvait accéder à TON pc, et redimensionner les images qu'il veut...), soit sur ton serveur.
Tu ne peux faire quelque chose que si elle sont sur ton serveur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
tynmar
Messages postés77Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention28 février 2006 28 févr. 2006 à 17:06
Ok, c'est évidemment ce que je pensais, mais avant de faire unlink($_FILES['logo_name']['tmp_name']); il est impossible de redéfinir la taille de l'image ? C'est à dire, il faut je la pose sur mon serveur, et je modifie la taille ou alors je modifie la taille en la posant sur le serveur ? Est-ce que je me fais bien comprendre ?
En tout cas, merci beaucoup malalam, c'est vraiment sympa de s'occuper de novices qui atterrissent. Merci bokou
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 28 févr. 2006 à 17:33
Une fois quye tu as fait ton move_uploaded_file() , l'image est sur ton serveur, ok ?
Là, tu peux la redimensionner. Via GD. Tu crées une ressource imagfe avec imagecreatefrommachin, tu vois du côté des fonctions imagecopyresampled() , tu as un exemple ici :
http://fr2.php.net/manual/fr/function.imagecopyresampled.php Puis tu sauves avec imagemachin(ressource, filename)