OVH Cloud OVH Cloud

Trouver les dimensions en mm d'une image

13 réponses
Avatar
sergio
Bonjour,

je charge une image dans un picturebox de la façon suivante :

picSource.Autosize=True
picSource.Picture=LoadPicture(Nom_Fichier)
xPixel=PicSource.ScaleX(PicSource.Picture.Width,8,3)
yPixel=PicSource.ScaleY(PicSource.Picture.Height,8,3)

Les deux dernières lignes me donnent les bonnes dimensions en pixels de mon
image.

Je souhaiterais faire de même pour trouver les dimensions en millimètres de
la même image, mais quand je fais :
xmm=PicSource.ScaleX(PicSource.Picture.Width,8,6)
Ymm=PicSource.ScaleY(PicSource.Picture.Height,8,6)
Les valeurs données ne correspondent pas aux dimensions correctes de mon
image en mm (image d'un livre scanné).

Quelqu'un pourrait-il m'aider je vous prie ?
Merci pour votre aide.

Serge

3 réponses

1 2
Avatar
LE TROLL
Bonjour, merci,

Mais, pourquoi l'image écran n'a pas la taille
affichée en mm ???

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Patrice Henrio" a
écrit dans le message de news:

| pour les dimensions centimétriques, Windows
utilise la norme 96dpi, p6 dot
| per inch et pour l'imprimante il utilise 72 DPI.
les dimensions des images
| imprimées sont toujours plus petites qu'à
l'écran, le rapport est de 72/96.
| (sauf pour les programmes qui adaptent l'image à
imprimer à la page entière
| ... bien sûr).
|
|
|
|
| "LE TROLL" <le a écrit dans le
message de news:
| utcyl$
| > Sergio,
| >
| > Sur la feuille... je n'ai pas imprimé, alor,
c'est
| > faux aussi ???
| >
| > --
| > Merci beaucoup, au revoir et à bientôt :o)
| > ------
| > Romans, logiciels, email, site personnel
| > http://irolog.free.fr/joe.htm
|
> ------------------------------------------------------------------------------------
| > "sergio" a
| > écrit dans le message de news:
| >

| > | Bonsoir,
| > |
| > | Je ne voulais pas afficher des controles en
mm,
| > mais simplement connaître
| > | les dimensions en mm d'une image mise dans
un
| > picturebox, afin de donner ces
| > | dimensions à l'utilisateur avant qu'il
n'imprime
| > l'image.
| > |
| > | je te remercie en tout cas pour tous les
| > efforts.
| > |
| > | Sincères salutations.
| > |
| > | "LE TROLL" a écrit :
| > |
| > | > Bonjour,
| > | >
| > | > j'ai trouvé ça aussi:
| > | >
| > | > Dim x As Long, y As Long
| > | > x = Screen.Width / Screen.TwipsPerPixelX
| > | > 'résolution horizontale
| > | > y = Screen.Height / Screen.TwipsPerPixelY
| > | > 'verticale
| > | >
| > | > Il y a une solution en bidouillage, mais
elle
| > ne
| > | > sera pas portable, tu mesures ton écran,
puis
| > tu
| > | > appliques le ratio en twips ou pixels,
mais ça
| > ne
| > | > sera évidemment pas portable totalement
sur un
| > | > autre écran...
| > | >
| > | > Il est vrai et curieux, que
scale..millimeter
| > | > n'affiche pas la vrai dimension en mm, je
ne
| > sais
| > | > pas pourquoi, ni sur quoi il se base...
| > | >
| > | > Il y a peut être quelque chose que l'on
peut
| > | > interroger pour connaître les dimension
| > physiques,
| > | > je ne sais pas, peut être qu'une info rom
dans
| > | > l'écran existe, et qu'elle peut être lue,
| > aucune
| > | > idée...
| > | >
| > | > La question à poser serait : "comment
| > connaître la
| > | > dimension physique de l'écran"...
| > | >
| > | > Mais je ne trouve pas davantage, je ne
sais
| > pas si
| > | > on peut connaître les dimensions physiques
de
| > | > l'écran, si non, ben, et sauf s'il y a
| > d'autres
| > | > fonctions, il suffit de faire le ratio
entre
| > la
| > | > définition de l'écran et sa taille
physique...
| > | >
| > | > Par les API, oui, peut être, mais laquelle
?
| > | >
| > | > Toutefois, je ne vois pas pourquoi tu veux
| > | > afficher des "mm", dans la mesure ou
suivant
| > la
| > | > taille de l'écran ça ne marchera pas, par
| > exemple,
| > | > tu as un écran de 400 mm de large, tu
affiche
| > dans
| > | > cette largeur 2 contrôles de 200 mm, et
| > ensuite tu
| > | > passe à un écran de 300 mm, là le second
| > contrôle
| > | > va, pour le moins, s'afficher hors
écran...
| > | > Normalement on programme en twips, voire
en
| > pixels
| > | > ???
| > | >
| > | > Ben, espérons que tu auras d'autres
réponses,
| > | > c'est les vacances, mais si tu n'as rien,
| > c'est
| > | > que personne ne sait, et ou, que c'est
| > | > impossible...
| > | >
| > | > Désolé.
| > | >
| > | > --
| > | > Romans, logiciels, email, site personnel
| > | > http://irolog.free.fr/joe.htm
| > |
| >
> ------------------------------------------------------------------------------------
| > | > "sergio"
a
| > | > écrit dans le message de news:
| > | >
| >

| > | > | Bonsoir,
| > | > |
| > | > | j'ai modifié la résolution de l'écran
mais
| > les
| > | > valeurs exprimées en mm
| > | > | restent toujours les mêmes. Apparemment
cela
| > ne
| > | > dépend pas de la résolution
| > | > | de l'écran.
| > | > |
| > | > | @+
| > | > | Serge
| > | > |
| > | > | "LE TROLL" a écrit :
| > | > |
| > | > | > Bonjour,
| > | > | >
| > | > | > Si tu n'as pas d'autres réponses,
je
| > | > | > chercherai demain...
| > | > | > Peut être selon la définition de
l'écran
| > et la
| > | > | > taille de l'écran, ramener le mm en
| > fonction
| > | > de la
| > | > | > taille du pixel.
| > | > | > Par exemple ton écran fait en hauteur
240
| > mm
| > | > pour,
| > | > | > disons : 1000 pixels
| > | > | > Là ce serait simple : 1000 pix / 240
mm | > x
| > | > | > environ x = 4,1, soit (x * 4,1) = mm
| > | > | > Je vois demain, @+, bye, Joe.
| > | > | >
| > | > | >
| > | > | > --
| > | > | > Merci beaucoup, au revoir et à bientôt
:o)
| > | > | > ------
| > | > | > Romans, logiciels, email, site
personnel
| > | > | > http://irolog.free.fr/joe.htm
| > | > |
| > | >
| >
> ------------------------------------------------------------------------------------
| > | > | > "sergio"
| > a
| > | > | > écrit dans le message de news:
| > | > | >
| > | >
| >

| > | > | > | Bonsoir,
| > | > | > |
| > | > | > | merci pour ton code source.
| > | > | > | Je viens de le tester, mais il y a
| > toujours
| > | > | > problème.
| > | > | > | J'ai essayé avec deux images : une
en
| > format
| > | > | > Paysage et l'autre en format
| > | > | > | Portrait.
| > | > | > | J'ai vérifié dans Photoshop les
| > dimensions
| > | > de
| > | > | > l'image en pixels et en mm. Je
| > | > | > | les ai également imprimé pour les
| > mesurer.
| > | > Les
| > | > | > dimensions en mm indiquées par
| > | > | > | Photoshop sont correctes.
| > | > | > |
| > | > | > | Quand j'utilise ton code voici ce
que
| > | > j'obtiens:
| > | > | > | Format Payage :
| > | > | > | Dimensions Photoshop : 265
pixels x
| > 222
| > | > | > pixels soit 93.5 mm x 78.3 mm
| > | > | > | Avec le code : 365 pixels x 222
| > pixels
| > | > MAIS
| > | > | > 70.1 mm x 58.7 mm !!
| > | > | > |
| > | > | > | Je t'épargne les résultats en format
| > | > Portrait,
| > | > | > mais il y a la même erreur.
| > | > | > |
| > | > | > | Comment se fait-il que ScaleWidth et
| > | > ScaleHeight
| > | > | > donnent des résultats faux
| > | > | > | avec pourtant ScaleMode = 6 ? Par
contre
| > en
| > | > | > pixel, il n'y a pas de problème
| > | > | > |
| > | > | > | Encore merci pour ton aide.
| > | > | > | Serge
| > | > | > |
| > | > | > |
| > | > | > |
| > | > | > | "LE TROLL" a écrit :
| > | > | > |
| > | > | > | > Tiens, avec deux images,
dont
| > une
| > | > | > | > invisible, j'ai fait je crois, ce
que
| > tu
| > | > | > voulais,
| > | > | > | > voici ci-joint en fichier la
source,
| > et
| > | > aussi
| > | > | > le
| > | > | > | > code ici :
| > | > | > | > -------
| > | > | > | >
| > | > | > | > ' form 1 : test image
| > | > | > | > '
| > | > | > | > ' objets : picture1 + 2 +
command1 +
| > 2 +
| > | > | > list1 +
| > | > | > | > 2 = (6)
| > | > | > | > '
| > | > | > | > Option Explicit
| > | > | > | > Dim visu As Boolean
| > | > | > | > '
| > | > | > | > Sub Form_Load()
| > | > | > | > Form1.Caption = " Test IMAGE"
| > | > | > | > visu = True
| > | > | > | > End Sub
| > | > | > | >
| > | > | > | > Sub Command1_Click() ' ok, go
| > | > | > | > Dim rapport As Double
| > | > | > | > '
| > | > | > | > Picture1.ScaleMode = 3 ' pixel
| > | > | > | > Picture1.AutoRedraw = True
| > | > | > | > Picture1.AutoSize = True
| > | > | > | > Picture1.Picture | > LoadPicture(App.Path
| > | > &
| > | > | > | > "roi2.jpg")
| > | > | > | > List1.Clear
| > | > | > | > List1.AddItem " Hauteur = " &
| > | > | > | > Picture1.ScaleHeight & " pixels"
| > | > | > | > List1.AddItem " Largeur = " &
| > | > | > | > Picture1.ScaleWidth & " pixels"
| > | > | > | > rapport = 100 /
Picture1.ScaleHeight
| > *
| > | > | > | > Picture1.ScaleWidth
| > | > | > | > List1.AddItem " Rapport = " &
| > | > | > Format(rapport,
| > | > | > | > "0.000000") & " %"
| > | > | > | > '
| > | > | > | > Picture2.Visible = True
| > | > | > | > Picture2.ScaleMode = 6 ' mm
| > | > | > | > Picture2.AutoRedraw = True
| > | > | > | > Picture2.AutoSize = True
| > | > | > | > Picture2.Picture | > LoadPicture(App.Path
| > | > &
| > | > | > | > "roi2.jpg")
| > | > | > | > List2.Clear
| > | > | > | > List2.AddItem " Hauteur = " &
| > | > | > | > Format(Picture2.ScaleHeight,
"#0.00")
| > & "
| > | > mm"
| > | > | > | > List2.AddItem " Largeur = " &
| > | > | > | > Format(Picture2.ScaleWidth,
"#0.00") &
| > "
| > | > mm"
| > | > | > | > rapport = 100 /
Picture2.ScaleHeight
| > *
| > | > | > | > Picture2.ScaleWidth
| > | > | > | > List2.AddItem " Rapport = " &
| > | > | > Format(rapport,
| > | > | > | > "0.000000") & " %"
| > | > | > | > End Sub
| > | > | > | > '
| > | > | > | > Sub Command2_Click() ' cache 2
| > | > | > | > visu = Not visu
| > | > | > | > Picture2.Visible = visu
| > | > | > | > End Sub
| > | > | > | >
| > | > | > | > ------
| > | > | > | > Romans, logiciels, email, site
| > personnel
| > | > | > | > http://irolog.free.fr/joe.htm
| > | > | > |
| > | > | >
| > | >
| >
> ------------------------------------------------------------------------------------
| > | > | > | > "sergio"
| > | > a
| > | > | > | > écrit dans le message de news:
| > | > | > | >
| > | > | >
| > | >
| >

| > | > | > | > | Rebonjour,
| > | > | > | > |
| > | > | > | > | sur Internet, j'ai trouvé que
l'on
| > | > pourrait
| > | > | > | > utiliser la fonction API
| > | > | > | > | GetDeviceCaps.
| > | > | > | > | Qu'en pensez-vous ? Auriez-vous
un
| > | > exemple
| > | > | > avec
| > | > | > | > cette fonction ?
| > | > | > | > |
| > | > | > | > | Salutations
| > | > | > | > | Serge
| > | > | > | > |
| > | > | > | > | "sergio" a écrit :
| > | > | > | > |
| > | > | > | > | > Bonjour,
| > | > | > | > | >
| > | > | > | > | > je charge une image dans un
| > picturebox
| > | > de
| > | > | > la
| > | > | > | > façon suivante :
| > | > | > | > | >
| > | > | > | > | > picSource.Autosize=True
| > | > | > | > | >
| > | > picSource.Picture=LoadPicture(Nom_Fichier)
| > | > | > | > | >
| > | > | > | >
| > | > | >
| > | >
| >
xPixel=PicSource.ScaleX(PicSource.Picture.Width,8,3)
| > | > | > | > | >
| > | > | > | >
| > | > | >
| > | >
| >
yPixel=PicSource.ScaleY(PicSource.Picture.Height,8,3)
| > | > | > | > | >
| > | > | > | > | > Les deux dernières lignes me
| > donnent
| > | > les
| > | > | > | > bonnes dimensions en pixels de mon
| > | > | > | > | > image.
| > | > | > | > | >
| > | > | > | > | > Je souhaiterais faire de même
pour
| > | > trouver
| > | > | > les
| > | > | > | > dimensions en millimètres de
| > | > | > | > | > la même image, mais quand je
fais
| > :
| > | > | > | > | >
| > | > | > | >
| > | > | >
| > | >
| >
xmm=PicSource.ScaleX(PicSource.Picture.Width,8,6)
| > | > | > | > | >
| > | > | > | >
| > | > | >
| > | >
| >
Ymm=PicSource.ScaleY(PicSource.Picture.Height,8,6)
| > | > | > | > | > Les valeurs données ne
| > correspondent
| > | > pas
| > | > | > aux
| > | > | > | > dimensions correctes de mon
| > | > | > | > | > image en mm (image d'un livre
| > scanné).
| > | > | > | > | >
| > | > | > | > | > Quelqu'un pourrait-il m'aider
je
| > vous
| > | > prie
| > | > | > ?
| > | > | > | > | > Merci pour votre aide.
| > | > | > | > | >
| > | > | > | > | > Serge
| > | > | > | > | >
| > | > | > | >
| > | > | > | >
| > | > | > | >
| > | > | >
| > | > | >
| > | > | >
| > | >
| > | >
| > | >
| >
| >
|
|
Avatar
Patrice Henrio
parce que le passage du freeware (résolution de l'écran en pixels) au
hardware (résolution physique de l'écran) est une approximation peut-être ?


"LE TROLL" <le a écrit dans le message de news:

Bonjour, merci,

Mais, pourquoi l'image écran n'a pas la taille
affichée en mm ???

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Patrice Henrio" a
écrit dans le message de news:

| pour les dimensions centimétriques, Windows
utilise la norme 96dpi, p6 dot
| per inch et pour l'imprimante il utilise 72 DPI.
les dimensions des images
| imprimées sont toujours plus petites qu'à
l'écran, le rapport est de 72/96.
| (sauf pour les programmes qui adaptent l'image à
imprimer à la page entière
| ... bien sûr).
|
|
|
|
| "LE TROLL" <le a écrit dans le
message de news:
| utcyl$
| > Sergio,
| >
| > Sur la feuille... je n'ai pas imprimé, alor,
c'est
| > faux aussi ???
| >
| > --
| > Merci beaucoup, au revoir et à bientôt :o)
| > ------
| > Romans, logiciels, email, site personnel
| > http://irolog.free.fr/joe.htm
|
> ------------------------------------------------------------------------------------
| > "sergio" a
| > écrit dans le message de news:
| >

| > | Bonsoir,
| > |
| > | Je ne voulais pas afficher des controles en
mm,
| > mais simplement connaître
| > | les dimensions en mm d'une image mise dans
un
| > picturebox, afin de donner ces
| > | dimensions à l'utilisateur avant qu'il
n'imprime
| > l'image.
| > |
| > | je te remercie en tout cas pour tous les
| > efforts.
| > |
| > | Sincères salutations.
| > |
| > | "LE TROLL" a écrit :
| > |
| > | > Bonjour,
| > | >
| > | > j'ai trouvé ça aussi:
| > | >
| > | > Dim x As Long, y As Long
| > | > x = Screen.Width / Screen.TwipsPerPixelX
| > | > 'résolution horizontale
| > | > y = Screen.Height / Screen.TwipsPerPixelY
| > | > 'verticale
| > | >
| > | > Il y a une solution en bidouillage, mais
elle
| > ne
| > | > sera pas portable, tu mesures ton écran,
puis
| > tu
| > | > appliques le ratio en twips ou pixels,
mais ça
| > ne
| > | > sera évidemment pas portable totalement
sur un
| > | > autre écran...
| > | >
| > | > Il est vrai et curieux, que
scale..millimeter
| > | > n'affiche pas la vrai dimension en mm, je
ne
| > sais
| > | > pas pourquoi, ni sur quoi il se base...
| > | >
| > | > Il y a peut être quelque chose que l'on
peut
| > | > interroger pour connaître les dimension
| > physiques,
| > | > je ne sais pas, peut être qu'une info rom
dans
| > | > l'écran existe, et qu'elle peut être lue,
| > aucune
| > | > idée...
| > | >
| > | > La question à poser serait : "comment
| > connaître la
| > | > dimension physique de l'écran"...
| > | >
| > | > Mais je ne trouve pas davantage, je ne
sais
| > pas si
| > | > on peut connaître les dimensions physiques
de
| > | > l'écran, si non, ben, et sauf s'il y a
| > d'autres
| > | > fonctions, il suffit de faire le ratio
entre
| > la
| > | > définition de l'écran et sa taille
physique...
| > | >
| > | > Par les API, oui, peut être, mais laquelle
?
| > | >
| > | > Toutefois, je ne vois pas pourquoi tu veux
| > | > afficher des "mm", dans la mesure ou
suivant
| > la
| > | > taille de l'écran ça ne marchera pas, par
| > exemple,
| > | > tu as un écran de 400 mm de large, tu
affiche
| > dans
| > | > cette largeur 2 contrôles de 200 mm, et
| > ensuite tu
| > | > passe à un écran de 300 mm, là le second
| > contrôle
| > | > va, pour le moins, s'afficher hors
écran...
| > | > Normalement on programme en twips, voire
en
| > pixels
| > | > ???
| > | >
| > | > Ben, espérons que tu auras d'autres
réponses,
| > | > c'est les vacances, mais si tu n'as rien,
| > c'est
| > | > que personne ne sait, et ou, que c'est
| > | > impossible...
| > | >
| > | > Désolé.
| > | >
| > | > --
| > | > Romans, logiciels, email, site personnel
| > | > http://irolog.free.fr/joe.htm
| > |
| >
> ------------------------------------------------------------------------------------
| > | > "sergio"
a
| > | > écrit dans le message de news:
| > | >
| >

| > | > | Bonsoir,
| > | > |
| > | > | j'ai modifié la résolution de l'écran
mais
| > les
| > | > valeurs exprimées en mm
| > | > | restent toujours les mêmes. Apparemment
cela
| > ne
| > | > dépend pas de la résolution
| > | > | de l'écran.
| > | > |
| > | > | @+
| > | > | Serge
| > | > |
| > | > | "LE TROLL" a écrit :
| > | > |
| > | > | > Bonjour,
| > | > | >
| > | > | > Si tu n'as pas d'autres réponses,
je
| > | > | > chercherai demain...
| > | > | > Peut être selon la définition de
l'écran
| > et la
| > | > | > taille de l'écran, ramener le mm en
| > fonction
| > | > de la
| > | > | > taille du pixel.
| > | > | > Par exemple ton écran fait en hauteur
240
| > mm
| > | > pour,
| > | > | > disons : 1000 pixels
| > | > | > Là ce serait simple : 1000 pix / 240
mm > | > x
| > | > | > environ x = 4,1, soit (x * 4,1) = mm
| > | > | > Je vois demain, @+, bye, Joe.
| > | > | >
| > | > | >
| > | > | > --
| > | > | > Merci beaucoup, au revoir et à bientôt
:o)
| > | > | > ------
| > | > | > Romans, logiciels, email, site
personnel
| > | > | > http://irolog.free.fr/joe.htm
| > | > |
| > | >
| >
> ------------------------------------------------------------------------------------
| > | > | > "sergio"
| > a
| > | > | > écrit dans le message de news:
| > | > | >
| > | >
| >

| > | > | > | Bonsoir,
| > | > | > |
| > | > | > | merci pour ton code source.
| > | > | > | Je viens de le tester, mais il y a
| > toujours
| > | > | > problème.
| > | > | > | J'ai essayé avec deux images : une
en
| > format
| > | > | > Paysage et l'autre en format
| > | > | > | Portrait.
| > | > | > | J'ai vérifié dans Photoshop les
| > dimensions
| > | > de
| > | > | > l'image en pixels et en mm. Je
| > | > | > | les ai également imprimé pour les
| > mesurer.
| > | > Les
| > | > | > dimensions en mm indiquées par
| > | > | > | Photoshop sont correctes.
| > | > | > |
| > | > | > | Quand j'utilise ton code voici ce
que
| > | > j'obtiens:
| > | > | > | Format Payage :
| > | > | > | Dimensions Photoshop : 265
pixels x
| > 222
| > | > | > pixels soit 93.5 mm x 78.3 mm
| > | > | > | Avec le code : 365 pixels x 222
| > pixels
| > | > MAIS
| > | > | > 70.1 mm x 58.7 mm !!
| > | > | > |
| > | > | > | Je t'épargne les résultats en format
| > | > Portrait,
| > | > | > mais il y a la même erreur.
| > | > | > |
| > | > | > | Comment se fait-il que ScaleWidth et
| > | > ScaleHeight
| > | > | > donnent des résultats faux
| > | > | > | avec pourtant ScaleMode = 6 ? Par
contre
| > en
| > | > | > pixel, il n'y a pas de problème
| > | > | > |
| > | > | > | Encore merci pour ton aide.
| > | > | > | Serge
| > | > | > |
| > | > | > |
| > | > | > |
| > | > | > | "LE TROLL" a écrit :
| > | > | > |
| > | > | > | > Tiens, avec deux images,
dont
| > une
| > | > | > | > invisible, j'ai fait je crois, ce
que
| > tu
| > | > | > voulais,
| > | > | > | > voici ci-joint en fichier la
source,
| > et
| > | > aussi
| > | > | > le
| > | > | > | > code ici :
| > | > | > | > -------
| > | > | > | >
| > | > | > | > ' form 1 : test image
| > | > | > | > '
| > | > | > | > ' objets : picture1 + 2 +
command1 +
| > 2 +
| > | > | > list1 +
| > | > | > | > 2 = (6)
| > | > | > | > '
| > | > | > | > Option Explicit
| > | > | > | > Dim visu As Boolean
| > | > | > | > '
| > | > | > | > Sub Form_Load()
| > | > | > | > Form1.Caption = " Test IMAGE"
| > | > | > | > visu = True
| > | > | > | > End Sub
| > | > | > | >
| > | > | > | > Sub Command1_Click() ' ok, go
| > | > | > | > Dim rapport As Double
| > | > | > | > '
| > | > | > | > Picture1.ScaleMode = 3 ' pixel
| > | > | > | > Picture1.AutoRedraw = True
| > | > | > | > Picture1.AutoSize = True
| > | > | > | > Picture1.Picture > | > LoadPicture(App.Path
| > | > &
| > | > | > | > "roi2.jpg")
| > | > | > | > List1.Clear
| > | > | > | > List1.AddItem " Hauteur = " &
| > | > | > | > Picture1.ScaleHeight & " pixels"
| > | > | > | > List1.AddItem " Largeur = " &
| > | > | > | > Picture1.ScaleWidth & " pixels"
| > | > | > | > rapport = 100 /
Picture1.ScaleHeight
| > *
| > | > | > | > Picture1.ScaleWidth
| > | > | > | > List1.AddItem " Rapport = " &
| > | > | > Format(rapport,
| > | > | > | > "0.000000") & " %"
| > | > | > | > '
| > | > | > | > Picture2.Visible = True
| > | > | > | > Picture2.ScaleMode = 6 ' mm
| > | > | > | > Picture2.AutoRedraw = True
| > | > | > | > Picture2.AutoSize = True
| > | > | > | > Picture2.Picture > | > LoadPicture(App.Path
| > | > &
| > | > | > | > "roi2.jpg")
| > | > | > | > List2.Clear
| > | > | > | > List2.AddItem " Hauteur = " &
| > | > | > | > Format(Picture2.ScaleHeight,
"#0.00")
| > & "
| > | > mm"
| > | > | > | > List2.AddItem " Largeur = " &
| > | > | > | > Format(Picture2.ScaleWidth,
"#0.00") &
| > "
| > | > mm"
| > | > | > | > rapport = 100 /
Picture2.ScaleHeight
| > *
| > | > | > | > Picture2.ScaleWidth
| > | > | > | > List2.AddItem " Rapport = " &
| > | > | > Format(rapport,
| > | > | > | > "0.000000") & " %"
| > | > | > | > End Sub
| > | > | > | > '
| > | > | > | > Sub Command2_Click() ' cache 2
| > | > | > | > visu = Not visu
| > | > | > | > Picture2.Visible = visu
| > | > | > | > End Sub
| > | > | > | >
| > | > | > | > ------
| > | > | > | > Romans, logiciels, email, site
| > personnel
| > | > | > | > http://irolog.free.fr/joe.htm
| > | > | > |
| > | > | >
| > | >
| >
> ------------------------------------------------------------------------------------
| > | > | > | > "sergio"
| > | > a
| > | > | > | > écrit dans le message de news:
| > | > | > | >
| > | > | >
| > | >
| >

| > | > | > | > | Rebonjour,
| > | > | > | > |
| > | > | > | > | sur Internet, j'ai trouvé que
l'on
| > | > pourrait
| > | > | > | > utiliser la fonction API
| > | > | > | > | GetDeviceCaps.
| > | > | > | > | Qu'en pensez-vous ? Auriez-vous
un
| > | > exemple
| > | > | > avec
| > | > | > | > cette fonction ?
| > | > | > | > |
| > | > | > | > | Salutations
| > | > | > | > | Serge
| > | > | > | > |
| > | > | > | > | "sergio" a écrit :
| > | > | > | > |
| > | > | > | > | > Bonjour,
| > | > | > | > | >
| > | > | > | > | > je charge une image dans un
| > picturebox
| > | > de
| > | > | > la
| > | > | > | > façon suivante :
| > | > | > | > | >
| > | > | > | > | > picSource.Autosize=True
| > | > | > | > | >
| > | > picSource.Picture=LoadPicture(Nom_Fichier)
| > | > | > | > | >
| > | > | > | >
| > | > | >
| > | >
| >
xPixel=PicSource.ScaleX(PicSource.Picture.Width,8,3)
| > | > | > | > | >
| > | > | > | >
| > | > | >
| > | >
| >
yPixel=PicSource.ScaleY(PicSource.Picture.Height,8,3)
| > | > | > | > | >
| > | > | > | > | > Les deux dernières lignes me
| > donnent
| > | > les
| > | > | > | > bonnes dimensions en pixels de mon
| > | > | > | > | > image.
| > | > | > | > | >
| > | > | > | > | > Je souhaiterais faire de même
pour
| > | > trouver
| > | > | > les
| > | > | > | > dimensions en millimètres de
| > | > | > | > | > la même image, mais quand je
fais
| > :
| > | > | > | > | >
| > | > | > | >
| > | > | >
| > | >
| >
xmm=PicSource.ScaleX(PicSource.Picture.Width,8,6)
| > | > | > | > | >
| > | > | > | >
| > | > | >
| > | >
| >
Ymm=PicSource.ScaleY(PicSource.Picture.Height,8,6)
| > | > | > | > | > Les valeurs données ne
| > correspondent
| > | > pas
| > | > | > aux
| > | > | > | > dimensions correctes de mon
| > | > | > | > | > image en mm (image d'un livre
| > scanné).
| > | > | > | > | >
| > | > | > | > | > Quelqu'un pourrait-il m'aider
je
| > vous
| > | > prie
| > | > | > ?
| > | > | > | > | > Merci pour votre aide.
| > | > | > | > | >
| > | > | > | > | > Serge
| > | > | > | > | >
| > | > | > | >
| > | > | > | >
| > | > | > | >
| > | > | >
| > | > | >
| > | > | >
| > | >
| > | >
| > | >
| >
| >
|
|




Avatar
touriste
Patrice Henrio a écrit :

parce que le passage du freeware (résolution de l'écran en pixels) au
hardware (résolution physique de l'écran) est une approximation peut-être ?





Non ces fonctions sont parfaitement définie par Windows.
Il y a en fait deux système de coordonnées:
Un système de coordonnées de périphérique (pixel) et un système de
coordonnées logiques (indépendant du périphérique).

Le système de coordonnées logique est défini par le mode de mapping du
DC d'affichage. Pour avoir des mm il faut le mapper en mode MM_HIMETRIC
Chaque unité logique vaut alors 0.01 mm.

Ceci est réalisé en VB avec la propriété scalemode.
1 2