Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Détecter la résolution et la taille en cm d'une image uplodée ?

0 views
Skip to first unread message

Seb

unread,
Oct 17, 2005, 3:51:25 AM10/17/05
to
Salut à tous !

Voilà j'ai un formulaire sur mon site qui permet d'uploader des images sur
le serveur. Je dois ensuite stocker en base la taille en cm de cette image,
ainsi que sa resolution en dpi.

Existe-t-il un moyen d'eviter à l'admin de saisir manuellement ces
coordonnées, et de les détecter automatiquement avec PHP ?

Je vous remercie d'avance pour votre réponse.

@++


denisb

unread,
Oct 17, 2005, 4:23:33 AM10/17/05
to
Seb <s...@nospam.com> wrote:
> Voilà j'ai un formulaire sur mon site qui permet d'uploader des images sur
> le serveur. Je dois ensuite stocker en base la taille en cm de cette image,
> ainsi que sa resolution en dpi.
> Existe-t-il un moyen d'eviter à l'admin de saisir manuellement ces
> coordonnées, et de les détecter automatiquement avec PHP ?

une image numérique est un fichier qui représente une surface de xx
pixels par yy pixels.
*** peu importe sa résolution (dpi, ppp, ...) ***

ainsi quand on upload un fichier image (disons un scan à 300 dpi d'un
tirage photo 24cm par 18cm), on upload un fichier image de 2835 pixels
par 2126 pixels.

une fois connues les dimensions en pixels de l'image il ne reste qu'à
travailler sur des correspondances et proportionnalités adéquates en
fonction de l'usage que l'on veut en faire.

en php la fonction *** getimagesize *** est ton amie :

getimagesize($mon_image) retourne un tableau de 4 éléments :
getimagesize($mon_image)[0] contient la taille horizontale en pixels.
getimagesize($mon_image)[1] contient la taille verticale en pixels.
getimagesize($mon_image)[2] contient le type de l'image (1 = GIF,
2 = JPG, 3 = PNG, 5 = PSD, 6 = BMP, 7 = TIFF -Ordre des octets Intel,
8 = TIFF -Ordre des octets Motorola-, 9 = JPC, 10 = JP2, 11 = JPX,
12 = JB2, 13 = SWC, 14 = IFF.)
getimagesize($mon_image)[3] contient la chaîne à placer dans les balises
IMG : "height=xxx width=xxx".

donc, un simple
round((getimagesize($mon_image)[0] * 0.85) / 100) te donne un arrondi de
la largeur de ton image en cm pour une résolution de 300dpi

pour conclure, *** il ne te sert à rien *** de stocker en base la
résolution de ton fichier (qui n'en possède aucune intrinsèquement).
seules comptent ses dimensions en pixels.
les connaissant, tu pourras en déduire (en calculer) la taille
d'impression de ton image *** en fonction de la définition/résolution
que tu auras choisie ***.

par exemple, une image de 1181 pixels par 1181 pixels affichera à
l'écran une surface de 1181 pixels par 1181 pixels.
quand on parle de haute définition (300 dpi souvent) c'est par rapport à
l'impression (sur papier souvent).
ainsi, cette image de 1181 pixels par 1181 pixels, une fois imprimée à
la résolution de 300 dpi, couvrira une surface de 10 centimètres par 10
centimètres. mais elle fera (le fichier numérique) toujours 1181 par
1181 pixels.
imprimée à une résolution plus faible (240 dpi) elle occupera une
surface de 12,5 cm par 12,5 cm. et elle fera encore et toujours 1181 par
1181 pixels.

si ça peut t'aider...

--
@@@@@
E -00 comme on est very beaux dis !
' `) /
|\_ =="

Seb

unread,
Oct 17, 2005, 5:33:49 AM10/17/05
to
"denisb" <ne...@no-log.org> a écrit dans le message de news:
1h4kmup.1yl4e1fxqo23aN%ne...@no-log.org...

OK, merci beaucoup pour ta reponse.
Il y a juste un truc que je ne comprends pas :
quand tu dis que pour obtenir la valeur approximative en cm, il faut faire
cela :
round((getimagesize($mon_image)[0] * 0.85) / 100) pour une image de 300
dpi...

Je voulais savoir d'ou venait le 0.85, et je voulais savoir comment faire si
je voulais faire la même opération pour une reslution de 72 dpi par exemple
?

Merci d'avance...


denisb

unread,
Oct 17, 2005, 8:06:23 AM10/17/05
to
Seb <s...@nospam.com> wrote:

> "denisb" <ne...@no-log.org> wrote:
>> round((getimagesize($mon_image)[0] * 0.85) / 100)
>> pour une image de 300 dpi...
> Je voulais savoir d'ou venait le 0.85, et je voulais savoir comment faire si
> je voulais faire la même opération pour une reslution de 72 dpi par exemple
> ?

ah.

dpi = dot per inch :
il te faut donc penser en anglo-saxon...
en pouce (1 pouce égale environ 2,54 centimètres).


donc :
une image de 1000 pixels par 1000 pixels

affichée/imprimée à 100 pixels par pouce
'mesurera' 10 pouces (ou 25,4 centimètres) sur 10

à 300 dpi => 3,3 pouces environ
car 1000 / 300 = 3,333...

à 300 dpi => 8,5 centimètres environ
car 3,333 x 2,54 = 8,4666...


donc la formule (modifiée pour plus de clarté) :

taille image en pixels
------------------------ x 2,54 = taille en cm
résolution sortie en dpi


1000
----- x 2,54 = 35,3 cm environ
72


1000
----- x 2,54 = 8,5 cm environ
300

0 new messages