Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пиксели -> миллиметры, Перевод пикселей в миллиметры 
:(
    Опции темы
Angakok
  Дата 26.4.2007, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 16.4.2007

Репутация: нет
Всего: нет



Как осуществить перевод экранных пикселей в реальные миллиметры ?

Пробовал:
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, которое дает число пикселей в логическом дюйме по вертикали. Но, очевидно, этого недостаточно. 

Каким еще образом можно решить эту проблему, получив при этом более или менее приемлемые данные ?
PM MAIL   Вверх
Snowy
Дата 27.4.2007, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



Винда не знает, какой монитор подключен, если только не установлен родной драйвер монитора.
С родным драйвером значения получаются точные.
А вот если не ставить родной драйвер, то значение приходится угадывать.
PixelsPerInch - есть правильное решение.
Но действительно правильным оно будет только, если установлен родной драйвер.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0466 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.