![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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