Перевод пикселей в миллиметры
От: Angakok Россия  
Дата: 26.04.07 21:13
Оценка:
Как осуществить перевод экранных пикселей в реальные миллиметры ?

Пробовал:
1.
Вычисляю число пикселей в миллиметре по X и по Y:
 HorResol,VertResol,HorScWidth,VertScHeight: Integer;
 PixXFact,PixYFact: Double;
 ...
 
 HorResol := GetDeviceCaps(GetDC(HWND(Nil)),HORZRES);
 VertResol := GetDeviceCaps(GetDC(HWND(Nil)),VERTRES);
 HorScWidth := GetDeviceCaps(GetDC(HWND(Nil)),HORZSIZE);
 VertScHeight := GetDeviceCaps(GetDC(HWND(Nil)),VERTSIZE);
 PixXFact := HorResol/HorScWidth;
 PixYFact := VertResol/VertScHeight;


Но такой вариант дает весьма неточные значения, которые с увеличением значения отображаемой величины, очень сильно искажаются.

2.
Есть свойство класса TScreen — PixelsPerInch, которое дает число пикселей в логическом дюйме по вертикали. Но, очевидно, этого недостаточно.

Каким еще образом можно решить эту проблему, получив при этом более или менее приемлемые данные ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.