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

Taille en cm d'1 écran ???

9 réponses
Avatar
LE TROLL
Bonjour,

Comment connaître la taille en cm, ou mm, d'un écran ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------

9 réponses

Avatar
Modeste
Bonsour® Attila avec ferveur ;o))) vous nous disiez :

Comment connaître la taille en cm, ou mm, d'un écran ???



il s'agit d'un parametre dépendant physiquement de l'écran

En informatique, le pitch (ou pas de perçage) est une caractéristique des écrans d'ordinateur. Il s'agit de la distance entre les trois éléments de phosphore - rouge, vert et bleu - constituant un point élémentaire de l'écran (un pixel). Cette valeur indique la finesse de l'image : plus cette distance est réduite, plus le point est net et plus grande est la définition d'écran.
La taille de l'écran et son pas de perçage définissent la définition d'écran maximale que l'on peut atteindre sans perte de qualité en ce qui concerne l'image. Le pas de masque, ou dot-pitch, définit le nombre de points par pouce physiquement attachés à l'écran.
La mesure se fait sur l'écartement diagonal entre deux éléments du masque, sauf pour les écrans Trinitron pour lesquels la mesure se fait sur l'écartement horizontal entre deux éléments de la grille (Aperture Grill Pitch). Ainsi le pitch doit être inférieur ou égal à 0,28 mm sur les écrans à masque, et inférieur ou égal à 0,25 mm sur les écrans à grille.


voir peut-etre du coté de l'API :
Public Declare Function GetMonitorInfo Lib "user32.dll" Alias "GetMonitorInfoA" (ByVal hMonitor As Long, ByRef lpmi As MONITORINFO) As Long

--
--
@+
;o)))
Avatar
Jacques93
Bonjour LE TROLL,
LE TROLL a écrit :
Bonjour,

Comment connaître la taille en cm, ou mm, d'un écran ???




Tu peux utiliser les méthodes ScaleX et ScaleY, qui permettent les
conversions d'unités. Les valeurs renvoyées sont celles de l'écran
"physique". Sur un tube cathodique de grande taille cela peut dépasser
le centimètre (qui est caché par la carrosserie). Sur un LCD cette
différence est moins importante.

Si tu as besoin de plus de précision, il faudra passer par les API.

Dim L As Single, H As Single
Dim D As Single, R As Single

L = Round(Me.ScaleX(Screen.Width, vbTwips, vbCentimeters), 2)
H = Round(Me.ScaleY(Screen.Height, vbTwips, vbCentimeters), 2)
Debug.Print "Largeur : " & L
Debug.Print "Hauteur : " & H
D = Round(Sqr(L ^ 2 + H ^ 2), 2)
Debug.Print "Diagonale : " & D
Debug.Print "Ratio : " & L / H


Si tu veux des millimètres, utilise la constante 'vbMillimeters' à la
place de 'vbCentimeters'
--

Cordialement,

Jacques.
Avatar
LE TROLL
Merci beaucoup pour ce cours sur le pixel :o)

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------



"Modeste" a écrit dans le message de news:

Bonsour® Attila avec ferveur ;o))) vous nous disiez :

Comment connaître la taille en cm, ou mm, d'un écran ???



il s'agit d'un parametre dépendant physiquement de l'écran

En informatique, le pitch (ou pas de perçage) est une caractéristique des
écrans d'ordinateur. Il s'agit de la distance entre les trois éléments de
phosphore - rouge, vert et bleu - constituant un point élémentaire de
l'écran (un pixel). Cette valeur indique la finesse de l'image : plus cette
distance est réduite, plus le point est net et plus grande est la définition
d'écran.
La taille de l'écran et son pas de perçage définissent la définition d'écran
maximale que l'on peut atteindre sans perte de qualité en ce qui concerne
l'image. Le pas de masque, ou dot-pitch, définit le nombre de points par
pouce physiquement attachés à l'écran.
La mesure se fait sur l'écartement diagonal entre deux éléments du masque,
sauf pour les écrans Trinitron pour lesquels la mesure se fait sur
l'écartement horizontal entre deux éléments de la grille (Aperture Grill
Pitch). Ainsi le pitch doit être inférieur ou égal à 0,28 mm sur les écrans
à masque, et inférieur ou égal à 0,25 mm sur les écrans à grille.


voir peut-etre du coté de l'API :
Public Declare Function GetMonitorInfo Lib "user32.dll" Alias
"GetMonitorInfoA" (ByVal hMonitor As Long, ByRef lpmi As MONITORINFO) As
Long

--
--
@+
;o)))
Avatar
LE TROLL
Ah, y a un truc que je ne comprends pas, c'est l'aide pour utiliser:

x = Round(Form1.ScaleX(1, vbCentimeters, vbPixels), 0)
y = Round(Form1.ScaleY(1, vbCentimeters, vbPixels), 0)

ScaleY(A, B, C)

A
dit "le nombre d'unités de mesure à convertir"
Où que je sais ça moi ??? C'est l'écran que je veux, sa taille, que mettre
???

B et C, est "Origine, Cible", ou "Cible, Origine"
Normalement, n'ayant désormais rien spécifié, ça doit marcher en twips,
faut-il mettre "vbtwips, vbcentimeters" ou "vbcentimeters, vbtwips" ???

Avec ce que j'ai écrit en haut, A = 1 = 38 x 38 cm (HUM) !!!

???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le message de news:
488dcc0f$0$881$
| Bonjour LE TROLL,
| LE TROLL a écrit :
| > Bonjour,
| >
| > Comment connaître la taille en cm, ou mm, d'un écran ???
| >
|
| Tu peux utiliser les méthodes ScaleX et ScaleY, qui permettent les
| conversions d'unités. Les valeurs renvoyées sont celles de l'écran
| "physique". Sur un tube cathodique de grande taille cela peut dépasser
| le centimètre (qui est caché par la carrosserie). Sur un LCD cette
| différence est moins importante.
|
| Si tu as besoin de plus de précision, il faudra passer par les API.
|
| Dim L As Single, H As Single
| Dim D As Single, R As Single
|
| L = Round(Me.ScaleX(Screen.Width, vbTwips, vbCentimeters), 2)
| H = Round(Me.ScaleY(Screen.Height, vbTwips, vbCentimeters), 2)
| Debug.Print "Largeur : " & L
| Debug.Print "Hauteur : " & H
| D = Round(Sqr(L ^ 2 + H ^ 2), 2)
| Debug.Print "Diagonale : " & D
| Debug.Print "Ratio : " & L / H
|
|
| Si tu veux des millimètres, utilise la constante 'vbMillimeters' à la
| place de 'vbCentimeters'
| --
|
| Cordialement,
|
| Jacques.
Avatar
Jacques93
LE TROLL a écrit :
Ah, y a un truc que je ne comprends pas, c'est l'aide pour utiliser:

x = Round(Form1.ScaleX(1, vbCentimeters, vbPixels), 0)
y = Round(Form1.ScaleY(1, vbCentimeters, vbPixels), 0)

ScaleY(A, B, C)

A
dit "le nombre d'unités de mesure à convertir"
Où que je sais ça moi ??? C'est l'écran que je veux, sa taille, que mettre
???



Les tailles d'écran sont en général indiqués par leur diagonale, mais il
y a depuis pas mal d'années le format 16/9 pour les TV (4/3 avant), et
les formats intermédiaires, surtout sur les portables. Donc un écran 15
pouces ne veut plus dire grand chose tout seul, et de toute façon cette
information n'est pas retournée par l'OS.

Donc pour éviter les API, je t'ai indiqué comment récupérer, la largeur
et la hauteur de l'écran. Ensuite si besoin est tu récupère sa diagonale

L = Round(Me.ScaleX(Screen.Width, vbTwips, vbCentimeters), 2)

est une instruction qui ne fait rien d'autre que de retourner la largeur
de l'écran en cm, en "simulant" un redimensionnement de la fenêtre.

B et C, est "Origine, Cible", ou "Cible, Origine"
Normalement, n'ayant désormais rien spécifié, ça doit marcher en twips,
faut-il mettre "vbtwips, vbcentimeters" ou "vbcentimeters, vbtwips" ???




vbtwips, vbcentimeters

on ne peut pas modifier l'unité de mesure de l'objet screen en VB, c'est
obligatoirement en Twips. L'instruction converti la largeur de l'écran,
Screen.Width, de twips en centimètres, c'est tout. Idem pour Screen.Height

Si ce n'est pas clair, précises ce que tu veux faire

--

Cordialement,

Jacques.
Avatar
LE TROLL
Merci Jacques, là cest clair, ce qu'il manquait dans l'exemple de VB,
c'était "l'exemple"...

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jacques93" a écrit dans le message de news:

| LE TROLL a écrit :
| > Ah, y a un truc que je ne comprends pas, c'est l'aide pour utiliser:
| >
| > x = Round(Form1.ScaleX(1, vbCentimeters, vbPixels), 0)
| > y = Round(Form1.ScaleY(1, vbCentimeters, vbPixels), 0)
| >
| > ScaleY(A, B, C)
| >
| > A
| > dit "le nombre d'unités de mesure à convertir"
| > Où que je sais ça moi ??? C'est l'écran que je veux, sa taille, que
mettre
| > ???
|
| Les tailles d'écran sont en général indiqués par leur diagonale, mais il
| y a depuis pas mal d'années le format 16/9 pour les TV (4/3 avant), et
| les formats intermédiaires, surtout sur les portables. Donc un écran 15
| pouces ne veut plus dire grand chose tout seul, et de toute façon cette
| information n'est pas retournée par l'OS.
|
| Donc pour éviter les API, je t'ai indiqué comment récupérer, la largeur
| et la hauteur de l'écran. Ensuite si besoin est tu récupère sa diagonale
|
| L = Round(Me.ScaleX(Screen.Width, vbTwips, vbCentimeters), 2)
|
| est une instruction qui ne fait rien d'autre que de retourner la largeur
| de l'écran en cm, en "simulant" un redimensionnement de la fenêtre.
| >
| > B et C, est "Origine, Cible", ou "Cible, Origine"
| > Normalement, n'ayant désormais rien spécifié, ça doit marcher en twips,
| > faut-il mettre "vbtwips, vbcentimeters" ou "vbcentimeters, vbtwips" ???
| >
|
| vbtwips, vbcentimeters
|
| on ne peut pas modifier l'unité de mesure de l'objet screen en VB, c'est
| obligatoirement en Twips. L'instruction converti la largeur de l'écran,
| Screen.Width, de twips en centimètres, c'est tout. Idem pour Screen.Height
|
| Si ce n'est pas clair, précises ce que tu veux faire
|
| --
|
| Cordialement,
|
| Jacques.
Avatar
LE TROLL
Jacques, marche pas, mais y'a du mieux, j'ai fait ça :

' mesures écran, form 1
Option Explicit
Sub Form_Activate()
Dim x As Long, y As Double
Dim s
s = vbCrLf
x = Screen.Width / Screen.TwipsPerPixelX
y = Screen.Height / Screen.TwipsPerPixelY
Text1 = ""
Text1 = Text1 & "Ecran de " & Screen.Width & " x " & Screen.Height & "
Twips" & s
Text1 = Text1 & "Ecran de " & x & " x " & y & " Pixels" & s

x = ScaleX(Screen.Width, vbTwips, vbCentimeters)
y = ScaleY(Screen.Height, vbTwips, vbCentimeters)

Text1 = Text1 & "Ecran de " & Round(x, 0) & " x " & Round(y, 0) & "
Centimètres" & s
-------------------

Il me sort 27 x 20 ???

NB, je crois que ton "Me" ne sert à rien, car, si aucun objet n'est indiqué,
par défaut c'est la form (et dans ce cas Me = la form), non ???

Alors que j'ai env (mesure au réglet) : 33 x 24...

Sais-tu où st l'esrreur ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------









"Jacques93" a écrit dans le message de news:

| LE TROLL a écrit :
| > Ah, y a un truc que je ne comprends pas, c'est l'aide pour utiliser:
| >
| > x = Round(Form1.ScaleX(1, vbCentimeters, vbPixels), 0)
| > y = Round(Form1.ScaleY(1, vbCentimeters, vbPixels), 0)
| >
| > ScaleY(A, B, C)
| >
| > A
| > dit "le nombre d'unités de mesure à convertir"
| > Où que je sais ça moi ??? C'est l'écran que je veux, sa taille, que
mettre
| > ???
|
| Les tailles d'écran sont en général indiqués par leur diagonale, mais il
| y a depuis pas mal d'années le format 16/9 pour les TV (4/3 avant), et
| les formats intermédiaires, surtout sur les portables. Donc un écran 15
| pouces ne veut plus dire grand chose tout seul, et de toute façon cette
| information n'est pas retournée par l'OS.
|
| Donc pour éviter les API, je t'ai indiqué comment récupérer, la largeur
| et la hauteur de l'écran. Ensuite si besoin est tu récupère sa diagonale
|
| L = Round(Me.ScaleX(Screen.Width, vbTwips, vbCentimeters), 2)
|
| est une instruction qui ne fait rien d'autre que de retourner la largeur
| de l'écran en cm, en "simulant" un redimensionnement de la fenêtre.
| >
| > B et C, est "Origine, Cible", ou "Cible, Origine"
| > Normalement, n'ayant désormais rien spécifié, ça doit marcher en twips,
| > faut-il mettre "vbtwips, vbcentimeters" ou "vbcentimeters, vbtwips" ???
| >
|
| vbtwips, vbcentimeters
|
| on ne peut pas modifier l'unité de mesure de l'objet screen en VB, c'est
| obligatoirement en Twips. L'instruction converti la largeur de l'écran,
| Screen.Width, de twips en centimètres, c'est tout. Idem pour Screen.Height
|
| Si ce n'est pas clair, précises ce que tu veux faire
|
| --
|
| Cordialement,
|
| Jacques.
Avatar
Jacques93
LE TROLL a écrit :
Jacques, marche pas, mais y'a du mieux, j'ai fait ça :

' mesures écran, form 1
Option Explicit
Sub Form_Activate()
Dim x As Long, y As Double
Dim s
s = vbCrLf
x = Screen.Width / Screen.TwipsPerPixelX
y = Screen.Height / Screen.TwipsPerPixelY
Text1 = ""
Text1 = Text1 & "Ecran de " & Screen.Width & " x " & Screen.Height & "
Twips" & s
Text1 = Text1 & "Ecran de " & x & " x " & y & " Pixels" & s

x = ScaleX(Screen.Width, vbTwips, vbCentimeters)
y = ScaleY(Screen.Height, vbTwips, vbCentimeters)

Text1 = Text1 & "Ecran de " & Round(x, 0) & " x " & Round(y, 0) & "
Centimètres" & s
-------------------

Il me sort 27 x 20 ???

NB, je crois que ton "Me" ne sert à rien, car, si aucun objet n'est indiqué,
par défaut c'est la form (et dans ce cas Me = la form), non ???

Alors que j'ai env (mesure au réglet) : 33 x 24...

Sais-tu où st l'esrreur ???



Y'a pas d'erreur, je pense, ou plutôt si, cela devrait être l'inverse.
Est ce un écran à tube cathodique ? En tout cas :

27 / 20 = 1,35

33 / 24 = 1,375

Format 4/3 = 1,33333333333333333333....

La diagonale d'un écran étant égale à la racine carré de ses deux côtés
(voir Mr Pythagore, prévoir un rendez vous, il est un peu agé :-) ),
soit tu as un écran de 13 pouces :

Sqr (27² + 20 ²) = 33 cm = 13 pouces

soit un de 15 pouces, voir plus ;-)

Sqr (33² + 24²) = 40 cm = 15 à 16 pouces

J'ai bien parlé de taille "physique" de l'écran, et sur les écrans 4/3
(et 16/9) pour les tubes cathodiques, une partie reste derrière la
carosserie.

Sinon comme l'a très justement indiqué Modeste, la résolution est
(était) une affaire de pixels, qui a laissé sa place au LCD, où l'on
parle de 1080i (interlacé) ou, mieux 1080p (Progressif), mais je m'égare ;-)

PS : tu pourrais typer tes variables plus correctement ?


--

Cordialement,

Jacques.
Avatar
Jacques93
LE TROLL a écrit :
Jacques, marche pas, mais y'a du mieux, j'ai fait ça :



> NB, je crois que ton "Me" ne sert à rien, car, si aucun objet n'est
indiqué,
par défaut c'est la form (et dans ce cas Me = la form), non ???




Tu as tout à fait raison, Me n'est pas indispensable, mais me sert à ne
pas taper la suite, (suis fainéant, avec l'age)

--

Cordialement,

Jacques.