Page 1 sur 1

Redimensionnement image par Php

Posté : 08 avr. 2005, 09:43
par slipndi
Bonjour à tous,
voila je suis entrain de developper la partie admin d'un site et j'ai un petit soucis, en effet je voudrais que lorsque j'insere une photo celle ci soit redimensionner j'ai deja mon code d'insertion d'image ainsi que la partie qui permet de renommer celle-ci, en effet ce script sert a remplacer une image deja existante donc j'utilise une feinte d'ours qui renomme l'image comme l'ancienne et qui l'ecrase. Mais j'aimerai que mon image ne depasse pas une taille max histoire que ca mette pas en l'air toute ma mise en page alors quelqu'un a une piste pour m'aider a trouver la solution ? Un autre problème que je n'arrive pas trop a gerer est il possible en php de detecter si l'image est à la vertical ou a l'horizontal, et donc de faire varier les valeur max en fonction de cela ???
voila je crois ke c'est tout. Merci d'avance pour votre futur aide (j'espere :) )

Posté : 08 avr. 2005, 09:45
par iclo
Tu as la livrairie Gd en php qui permet de manipuler des images, notamment les redimmensionner. maisi il faut vérifier qu'elle est bien activée sur le serveur (=> un petit phpinfo() pour vérifier :cry: :cry: )

Posté : 08 avr. 2005, 09:47
par slipndi
et cette fonction est souvent activé ? je veux dire beaucoup de serveur gratuit utilise cette bibliothèque ?? parceque je ne sais pas encore ou va être heberger mon site :'( et ca me ferais mal au fesse de devoir tout refaire après :) c'est pas que je soit parresseu mais bon jsuis pas fan du boulot qui prend 5 heures et que l'on doit totalement refaire après :) lol
je sais pas si tu en sais plus la dessus :)

Posté : 08 avr. 2005, 09:51
par iclo
Pas de garantie absolue, mais oui je pense que c'est généralement activé même chez les hébergeurs gratuits

Posté : 08 avr. 2005, 10:00
par slipndi
Ok ben merci je vais regarder de ce coté, puis je vais continuer ma recherche je vous tient au courant de mes résultats, merci pour ton aide iclo !

Posté : 08 avr. 2005, 10:40
par roro166
alors oui normalement c 'est activé sur beaucoup d'hebergeur gratuit. Les probleme que tu vas rencontrer sont:
Le temps d'envoie de ta photo (limité à 1 minute le plus souvent)
La taille des fichiers (chez free c 'est environ 200 ko je crois)
Verifie bien quelle fonction de la librairie gd que tu vas prendre. Certaine sont bien determiné pour un seul type de fichier.
Bien sur il existe beaucoup de script pour arriver a envoyer une photo avec la gestion d'un miniature a la volée. Je te passe le mien mais la prochaine fois cherche un peu ...

Code : Tout sélectionner

// Recuperation du lien if(isset($_FILE['image1'])){ $g1_photo= $_FILE['image1'];} else{ $g1_photo="images/grande/defaut.jpg"; $p1_photo="images/petite/defaut.jpg";} //on traite la variable $image1: upload de l'image1 if ($_FILES['image1']['type'] == "image/gif" || $_FILES['image1']['type'] == "image/jpeg" || $_FILES['image1']['type'] == "image/pjpeg") { $nouveau_chemin = "../images/grande/"; $photo=$_FILES['image1']['name']; $cible=$nouveau_chemin.$photo; $temporaire=$_FILES['image1']['tmp_name']; move_uploaded_file($temporaire, $cible) or die ("uploaded non effectué"); $fichierSource = "images/grande/$photo"; $g1_photo=$fichierSource; //on crée un image vide dans laquelle se trouvera la miniature $source = ImageCreateFromJpeg($cible) or die ("creation de l'image erronée"); $largeurSource = imagesx($source); //on recupere la taille original de l'image $hauteurSource = imagesy($source); if($largeurSource> $hauteurSource) { $new_largeur = 210; // largeur a definir $new_hauteur = ($new_largeur * $hauteurSource) / $largeurSource ; // hauteur proportionnelle } if($hauteurSource>$largeurSource) { $new_largeur = 150; // largeur a definir $new_hauteur = ($new_largeur * $hauteurSource) / $largeurSource ; // hauteur proportionnelle } if($hauteurSource == $largeurSource) { $new_largeur = 200 ; // largeur a definir $new_hauteur = 200 ; // hauteur proportionnelle } $im = ImageCreateTrueColor ($new_largeur, $new_hauteur) or die ("Erreur lors de la création de l'image3"); ImageCopyResampled($im, $source, 0, 0, 0, 0, $new_largeur, $new_hauteur, $largeurSource, $hauteurSource); $photo1 = "../images/petite/".$photo; ImageJpeg ($im,$photo1); $p1_photo = "images/petite/".$photo; } else { echo"<br>"; echo "Ne mettez que des images GIF ou JPG pour le champ 1<br>Recommencer l'opération pour l'image 1<br>"; echo"<br>"; }

Posté : 08 avr. 2005, 10:56
par slipndi
Merci, mais t'inquiete je cherche je cherche, mais je suis dans plein de recherche en même temps et je prend un peu de temps pour chaque partie, la je posais la question en me penchant un peu dessus parceque je perds beaucoup beaucoup de temps en recherche pour mon site :)
mais bon merci et pardon :oops:

Posté : 08 avr. 2005, 11:30
par iclo
Je te passe le mien mais la prochaine fois cherche un peu ...
C'est très gentil de lui passer TON code, mais à ma connaissance, il n'a jamais demander qu'on lui passe un code tout fait, slipndi a posé une question et demandé des avis et c'est tout. Je trouve donc ta remarque totalement injustifié

Posté : 08 avr. 2005, 12:35
par roro166
et bien si ma remarque est injustifié je m'en excuse ...
Le peu d'heure de sommeil on du alteré ma reflexion.

Re: Redimensionnement image par Php

Posté : 08 avr. 2005, 14:08
par flitox
est il possible en php de detecter si l'image est à la vertical ou a l'horizontal, et donc de faire varier les valeur max en fonction de cela ???
Avec une méthode assez barbare et peu fiable, tu testes si l'image a une hauteur plus importante que la largeur à ce moment là tu peux en déduire que ton image est horizontale. Si tu es sûr que dans toutes tes images, la hauteur est plus grande que la largeur alors cette méthode marche ;)
<?php
$size = getimagesize("image.jpg");
if ($size[1] > $size[0])
	{
		echo "Image horizontale";
	}
else
	{
		echo "Image verticale";
	}
?>
Pour la redimensionner tu utilises $size[0] (largeur) et $size[1] (hauteur) et tu vérifies qu'ils sont inférieurs ou supérieurs à la taille

Posté : 08 avr. 2005, 14:31
par slipndi
mhhh merci :) dis j'ai juste une mini question hors php par rapport a ta signature, l'expression en rouge signifie quoi ? J'ai caller l'idée mais y'a un mot qui me reste obscure ;) lol j'ai l'air bête;)

Posté : 08 avr. 2005, 14:41
par flitox
Si tu regardes bien l'image le texte n'est jamais fixe et c'est toujours la même image ;)

La citation change en permanence donc je ne peux pas te dire laquelle c'est ;)

Actualise la page et tu auras une autre citation sans que le nom de l'image change

Avec les expressions régulières pour aller chercher des milliers de citations sur un site, ca fait un petit paquet pour 1 seule image ^__^

Voilà une autre image que j'ai fait ;)

http://csdl.djeyl.net/genimage/citation ... onjcvd.jpg

Actualises l'image tu verras c'est magique :lol: