PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → comment convertir des pixels en mm en tenant compte de la résolution écran)
comment convertir des pixels en mm en tenant compte de la résolution écran)
Débuté par hfantini, 20 jan. 2006 16:50 - 3 réponses
Posté le 20 janvier 2006 - 16:50
Bonjour,

Comment fait-on pour convertir des pixels en mm et vice versa , en tenant compte de la résolution d'écran.

Merci d'avance pour vos réponses.

Hervé FANTINI
Posté le 20 janvier 2006 - 18:03
Bonjour,
Il faut pour celà connaitre la taille physique de la partie visible de l'écran, qui n'est pas égale à la taille "commerciale" de la dalle dans le cas des CRT. Par exemple, mon écran perso est un 17', et la partie visible ne fait que 15'9.
A partie de la diagonale, il suffit de calculer la taille des côtés ( en respectant un ration 4:3 ), puis une simple règle de trois te permet de connaitre le nombre de pixels par mm en fonction de la résolution.

Frédéric.
Posté le 23 janvier 2006 - 11:34
Hervé FANTINI a écrit dans le message


Bonjour,

Comment fait-on pour convertir des pixels en mm et vice versa , en tenant compte de la résolution d'écran.

Merci d'avance pour vos réponses.

Hervé FANTINI

En automatique, impossible, sauf de connaître aussi la taille réelle de chaque pixel (certaine marque la donne).
Avec un étalonnage, oui : Une bonne règle et une règle de trois suffise ;-)

@+
Vincent Barré
Posté le 23 janvier 2006 - 11:59
Exemple en pseudo code pour l'imprimante (c'est la même chose pour l'écran)

hDCprint is int = CreateDC("WINSPOOL", (Driver$), BYVAL NULL, BYVAL DvModePtr)

IF hDCprint THEN

hSize is int = GetDeviceCaps(hDCprint&, %HORZSIZE)
vSize is int = GetDeviceCaps(hDCprint&, %VERTSIZE)
hRes is int = GetDeviceCaps(hDCprint&, %HORZRES)
vRes is int = GetDeviceCaps(hDCprint&, %VERTRES)

// Convert mm to pixels
mmToPixelX is single = MAX(hRes / hSize, 1)
mmToPixelY is single = MAX(vRes / vSize, 1)