Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Pixel [D6]


Михаил_ ©   (2007-02-14 14:26:00) 

Уважаемые мастера.
Скажите, как из pixel перевести в см.
Если ли точная формула расчета.
Например, Width формы = 500 Pixels,
сколько это в см. //для динамики, размеры меняются.
Спасибо.


RASkov   (2007-02-14 21:48:00) [1]

> [7] Anatoly Podgoretsky ©   (14.02.07 21:20)

1я и 2я строки как то не согласовываются :)
Фик с ним пиксел не имеет размера, но если на 1См есть 200Px то 500Px = 2,5 См
Вообщем я общую суть [7] понял(давно уже), тем более это не первый, и не второй, и не тре... раз уже говорится
Просто как то не вяжутся из-за:

> вот количество пикселей на единицу длины да
и
> Поэтому ответсть сколькосантиметров в 500 пикселях просто невозможно.
:)

> [0] Михаил_   (14.02.07 14:26)

В итоге нужно найти сколько пикселей приходится на ед. длинны конкретного "устройства" и учитывать, что по X и по Y значения могут быть разные...
А такие значения можно получить, только если устройство знает и может выдать свои физич. харак-ки.


Anatoly Podgoretsky   (2007-02-14 21:20:00) [2]

> Михаил_  (14.02.2007 14:26:00)  [0]

Пиксель не имеет размера, а вот количество пикселей на единицу длины да.
Поэтому ответсть сколько сантиметров в 500 пикселях просто невозможно.


clickmaker   (2007-02-14 16:31:00) [3]

(value / GetDeviceCaps(DC, LOGPIXELSX)) * inch
Эксель показывает не в мм, а в символах
64 px ~ 0.666 дюймов при разрешении 96 px/inch


Сергей М.   (2007-02-14 16:23:00) [4]


> Не получается, как в Excel - 64pixels - 8.43мм


Ёхель-то причем тут ?


Михаил_   (2007-02-14 15:11:00) [5]

Можно на примере показать, исп. функцию,
не могу прийти к результату как в Excel,
когда тянем за ширину столбца.
Как он считает, вообще не понятно.
Где-то в функции ошибка: ????

function TForm1.PixelToMillimeters(DC:HDC;Value:integer):double;
const
  inch = 25.4;//сколько мм в дюйме
var
y:integer;
begin
 y:=GetDeviceCaps(DC, LOGPIXELSY);
 Result:=(MulDiv(1,y,PixelsPerInch)/Inch)*Value;
end;

label1.Caption:=floattostr(PixelToMillimeters(Canvas.Handle,64));
Не получается, как в Excel - 64pixels - 8.43мм


<Efir>   (2007-02-14 14:45:00) [6]

Тебе относительно чего надо?

Размер пикселя понятие растяжимое. Например для 17" моника при 640*480 это один размер, а при 1600*1200 - другой.

Эсли для монитора, то смотри диагональ монитора и разрешение, а потом считай.


Михаил_   (2007-02-14 14:39:00) [7]

А какой индекс использовать?


Rouse_   (2007-02-14 14:30:00) [8]

GetDeviceCaps


Наверх

Титульная страница Поиск, карта сайта Написать письмо