Bonjour,
J'aimerais savoir s'il est possible de convertir des cm en pixels.
Merci de votre aide.
Version imprimable
Bonjour,
J'aimerais savoir s'il est possible de convertir des cm en pixels.
Merci de votre aide.
Tout dépend le support, en général, il y a la proprité PixelsPerInch pour l'écran et pour l'imprimante, utilise l'API GetDeviceCaps
Merci beaucoup !:ccool:
Bonjour,
cette question m'intéresse aussi depuis longtemps car je n'ai pas trouvé la réponse complète.
En effet, PixelsPerInch n'est valable que pour des mesures verticales. Les écrans ont une proportion différente pour les mesures horizontales.
Savez-vous comment obtenir le nombre de pixels per inch horizontal de l'écran ? (par programme, bien sûr et non pas en mesurant directement sur l'écran avec un double décimètre)
Bonjour,
Je ne sais pas si cela peut répondre à votre demande, mais il existe un petit programme nommé Ruler.exe qui donne la mesure de l'écran en pixels ou en cm et mm. Il doit être possible de convertir en inch.
Les sources étant mises à disposition, cela doit vous permettre de trouver une solution. Je vous mets l'adresse :
http://delphi.about.com/od/fullcodep...en_ruler_3.htm
J'utilise ce programme pour positionner mes composants ou mesurer certaines distances, mais je n'ai jamais été plus loin.
A plus
Pour un écran, le nombre de points par pouce (logique) est identique en horizontal et en vertical. Il n'y a d'ailleurs qu'un seul réglage dans les paramètres Windows.
Si maintenant la question est de déterminer la taille physique de l'écran. Ben c'est tout simplement impossible...
Merci d'avoir répondu à ma question.
Le programme "SreemRuler.exe" donne des indications exactes en ce qui concerne le nombre de pixels (en horizontal et vertical). Par contre les mesures en mm sont grossièrement fausses, du moins en ce qui concerne mon moniteur. Par exemple, pour un segment long de 100 mm (mesure physique sur l'écran), il indique 124mm
D'ailleurs, je ne comprends pas comment il pourrait récupérer les dimensions physique de l'écran de mon moniteur.
En ce qui concerne les pixels, pas de problème avec :
GetDeviceCaps(h,HORZRES); {display width in pixels}
GetDeviceCaps(h,VERTRES); {display height in pixels}
Je vais étudier le code source pour essayer de comprendre.
Tout compte fait, si on veut des résultats précis, mieux vaut mettre dans l'application un petit outil d'étalonnage : on demande à l'utilisateur de mesurer la largeur et la hauteur de l'écran ( la zône réellement utilisée) et cela permet de calculer les dpi horizontaux et verticaux. Ce sont donc les dpi réels qui, en général, ils ne sont pas tous deux égaux, ni exactement égaux au nombre de dpi "logique" récupéré par programme.
Ces deux constantes peuvent être entregistrées dans un INI ou autre : l'utilisateur n'a pas besoin de recommencer l'étalonnage à chaque excécution de l'application. Il n'a qu'à le faire une seule fois, tant qu'il ne change pas de moniteur.