|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éprouvé
![]() Cyrill GremaudIngénieur systèmes et réseaux Inscription : août 2005 Messages : 1 002 ![]() |
Bonjour tout le monde,
voila je suis entrain de développez un site qui permet l'upload de photos. Maintenant le truc c'est que j'aimerai que les photos uploadées répondent à certaines règles qui sont les suivantes :
pour le moment mon script fais ceci :
maintenant j'aimerai faire un script de redimensionnement mais intelligent dans le sens que si l'image est en 800 * 600 et qu'elle fais 2 mo, on dois arriver a un poids max de 500 ko et une taille max de 320 * 240 mais je ne veux pas que l'image soit déformée donc il faut surement travailler en linkant les la taille de base. Genre si l'image fais 640 * 480 sa ne pose pas de problème car on divise par deux la taille de base et on oublie pas de checked si le poids de l'image ne dépasse pas le max mais comment faire ce calcule si l'image a une taille par exemple de 648 * 376 par exemple soit disant une taille totalement aléatoire ? c'est ici que je bloque. merci de me donner un coup de main
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() |
L'idée c'est de fixer des "limites" acceptables comme taille pour ton site.
exemple: tu veux du 300*200. Ensuite tu fais les traitements dans cet ordre: upload de l'image , là tu checkes son format de fichier (jpg, gif, etc..) et tu filtres à l'upload ce genre de choses. Ensuite tu passes l'image récupéré dans une fonction qui effectuera les opérations suivantes : ->récupération de la taille de l'image (getimagesize()). ->Tu vérifies si la largeur de l'image est supèrieure à celle que tu autorises. ->Si c'est ok, tu fais le meme test sur la hauteur. ->Si c'est pas ok, tu copies l'image dans une image tampon (imagecreatefrompng, imagecreatefromgif, etc..), puis tu calcules par une règle de trois les nouvelles dimensions que dois avoir ton image. exemple tu as du 340*200. 340>300 donc pas ok. tu poses donc la règle suivante: largeur_image=340 --->largeur_finale=300 hauteur_image=200 --->hauteur_finale=X donc ta largeur est finale est à 300 et ta hauteur finale est a (300*200)/340 soit 176. la hauteur obtenue est inférieurs à celle que tu as préconisé pour ton site (176<200) donc tu as les dimensiosn finales et proportionnées de ton image:300*176. Si tu avais obtenu au lieu de 176, uen valeur >200 (exemple 220), il aurait fallu faire une nouvelle opération semblale à celle ci sauf que tu aurais fait: hauteur_image =220 --> hauteur_finale : 200 largeur_image= 300 -->largeur_final: X etc... Tu finis donc pas avoir les dimensions finales et proportionnées de ton image. Après tu crées ta nouvelle image à l'aide des fonctions GD et des dimensions finales de ton image (imagecopyresampled) et tu l'enregistres, tu arrives donc à une image respectant tes normes et proportionnés à l'image saisie au départ. Bon voilà je t'ai donné l'algo et les fonctions associées, j'espère que ca te suffira pour avancer. |
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() |
voici un bout de ma fonction qui gérer ça:
Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Cyrill GremaudIngénieur systèmes et réseaux Inscription : août 2005 Messages : 1 002 ![]() |
merci pour ton aglo dans ton premier post ! je vais étudier tout sa et je te redierai ! merci
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#5 | |
|
Membre éprouvé
![]() Cyrill GremaudIngénieur systèmes et réseaux Inscription : août 2005 Messages : 1 002 ![]() |
re ! je bloque au niveau du calcule en faite... si quelqu'un voit comment je pourrait faire ???
merci voici mon code pour l'instant : Citation:
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() |
J'ai essayé en fonction de ce que tu as commencé à faire. Par contre j'ai pas vérifié.
maintenant, je t'en dirai plus ce coir quand je pourrai tester si jamais tu as des problèmes. Code :
|
||
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Cyrill GremaudIngénieur systèmes et réseaux Inscription : août 2005 Messages : 1 002 ![]() |
merci pour ton aide ! sa a l'air de marcher mais le truc cest que sa ne m'affiche pas l'image mais plein de texte bizare lol
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#8 | ||||
|
Membre éprouvé
![]() Cyrill GremaudIngénieur systèmes et réseaux Inscription : août 2005 Messages : 1 002 ![]() |
En faite cest bon j'ai trouver le truc. si on veux simplement afficher l'image on utilise la fonction imagejpeg() de la facon suivante
Code :
Si maintenant comme dans mon cas on veux enregistrer l'image sur le disque, il suffis de faire sa comme sa sans le header Code :
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
||||
|
|
00
|
|
|
#9 | |
|
Membre éprouvé
![]() Cyrill GremaudIngénieur systèmes et réseaux Inscription : août 2005 Messages : 1 002 ![]() |
je vous donne quand même le code source !
Citation:
encore merci a tout ceux qui m'ont donné un coup de main !
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com