Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

10 réponses

1 2
Avatar
LE TROLL
Bonjour,

Ne faudrait-il pas mettre
scaleMode=millimètres (à voir sur place)...

Mais... je ne suis pas certain, toutefois, le
mm c'est une donnée fixe, par contre le pixel est
une donné mobile, pour un nb X de pixels, selon
l'écran, ils seront + ou - larges, je crois. Donc
la mesure du pixel va petre variable mm...

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

| 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
sergio
Bonjour,

je viens d'essayer cela :

picSource.Autosize=True
picSource.Picture=LoadPicture(Nom_Fichier)
picSource.ScaleMode=6
xmm=PicSource.ScaleWidth
ymm=PicSource.ScaleHeight

mais cela est encore incorrect.
Mystère ! Avez-vous d'autres idées ?
En tout cas merci d'avoir prêté attention à ma demande.

Salutations.
Serge


"LE TROLL" a écrit :

Bonjour,

Ne faudrait-il pas mettre
scaleMode=millimètres (à voir sur place)...

Mais... je ne suis pas certain, toutefois, le
mm c'est une donnée fixe, par contre le pixel est
une donné mobile, pour un nb X de pixels, selon
l'écran, ils seront + ou - larges, je crois. Donc
la mesure du pixel va petre variable mm...

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

| 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
sergio
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
sergio
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
LE TROLL
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
sergio
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
LE TROLL
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
sergio
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
LE TROLL
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
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
| > | > | > | >
| > | > | >
| > | > | >
| > | > | >
| > | >
| > | >
| > | >
| >
| >
| >




1 2