![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пиксели и сантиметры [D7, Win95/98, WinXP]
apic © (2006-08-18 17:52:00)Мне нужно нарисовать на экране например прямоугольник 10х5 см , в натуральную величину, но в прграммировании графики, насколько я знаю все в пикселях, Так вот может кнонибудь подкинуть ф-ции преобразования пикселейв сми наоборот
DesWind (2006-08-20 00:18:00) [41]
> Anatoly Podgoretsky © (19.08.06 14:32) [24]
Про что и речь!.. Берем "слонов" и говорим что на мониторе это столько-то "слонов", главное их потом в сантиметры перевести! Если чесно, для меня это было открытием. Задали нам графический редактор накалякать... Накалякал!.. А потом препод говорит- "Теперь, напечатай что нарисовал." Ну, там Printer.Canvas и т.д. Для мя был шок... )))
Pavia (2006-08-20 00:10:00) [42]
> Pavia © (19.08.06 21:17) [28]
> Ты переводишь не пиксели, а пиксели на дюйм, при том в попугаях,
> поскольку это значение будет и для 17 дюймов и для 19 дюймов.
> И оно равно 72 или 96 пикселей на дюйм.
> <Цитата>
Миллиметр это 1/10 см. О каких дюймах идет речь???
В мониторе записаны его параметры. Они указываются либо в сантиметрах либо более точно в миллиметрах.
То, что вы говорите это DPI и оно может быть произвольным. Но это относиться больше к шрифтам. Или же для переноса данных с одного устройства на другое, для правильного масштабирования. Но часто не работает, так как надо.
> Или от телевизора ?
Нет, телевизор не имеет обратной связи с компьютером.
На два монитора можно подавать 2 разные картинки.
Anatoly Podgoretsky (2006-08-19 23:25:00) [43]Pavia © (19.08.06 21:17) [28]
Ты переводишь не пиксели, а пиксели на дюйм, при том в попугаях, поскольку это значение будет и для 17 дюймов и для 19 дюймов. И оно равно 72 или 96 пикселей на дюйм.
McSimm (2006-08-19 22:27:00) [44]> Откуда виндоус знает физичиские размеры? Да знает, от манитора
> он их знает.
Или от телевизора ?
А еще есть возможность одну и ту же картинку выводить на разные устройства одновременно. Например на 14" и на 21"
Мефисто (2006-08-19 21:36:00) [45]
> Pavia © (19.08.06 21:17) [28]
Продолжим боянище? :)
Pavia (2006-08-19 21:17:00) [46]
> Можно перевести дюймы в сантиметры, но пиксели перевести
> ни во что нельзя. Единица эта безразмерная.
Еденица без размерная. Но перевести можна. Вот вы на монитор смотрите? Пиксели видите?(Ой нет, выже такой старой что их не видите) Ну картинку то видите? Картинка имеет размер. На картинке число пикселей известно.
А следовательно перевести можно. Откуда виндоус знает физичиские размеры? Да знает, от манитора он их знает.
procedure CmPerPixel(canvas:TCanvas; var xcmpp,ycmpp: Real);
var h:HDC;
hres,vres,hsiz,vsiz:integer;
begin
h:=canvas.handle;
hres := GetDeviceCaps(h,HORZRES); {display width in pixels}
vres := GetDeviceCaps(h,VERTRES); {display height in pixels}
hsiz := GetDeviceCaps(h,HORZSIZE); {display width in mm}
vsiz := GetDeviceCaps(h,VERTSIZE); {display height in mm}
xcmpp := hsiz/hres*0.1;
ycmpp := vsiz/vres*0.1;
end;
> Что-то подобное уже вроде обсуждалось :) Кажися програмно
> узнать физический размер пикселя моника.
Да обсуждалась, кажись я участвовал при этом обсуждение.
vrem (2006-08-19 17:15:00) [47]Cпособ [1] пример не правильного пиара, пример [23] это правильный пиар. имхо :)
SerJaNT (2006-08-19 15:32:00) [48]Кстати, PhotoShop считает что 1 см. = 28 пикселям при разрешении 28,346 пикс/см. Теперь остается узнать разрешение :-).
Только при увеличении разрешения увеличивается и кол-во пикселей на 1 см.
isasa (2006-08-19 15:24:00) [49]McSimm © (19.08.06 13:23) [23]
... то программе просто необходим мастер калибровки,...
Не, ну цветные бумажки прикладывать к экрану доводилось(калибровал View Sonic), явно просили, приложи ... но линейку.
Видел только кадров, пытавшихся проверить размер диагонали линейкой и потом наезжавших на продавца, не то ... :)
Anatoly Podgoretsky (2006-08-19 14:32:00) [50]Можно перевести дюймы в сантиметры, но пиксели перевести ни во что нельзя. Единица эта безразмерная.
McSimm (2006-08-19 13:23:00) [51]> Что-то подобное уже вроде обсуждалось :)
Неоднократно.
Если программе действительнонеобходима метрическая привязка, то программе просто необходим мастер калибровки, с помощью которого пользователь настроит программу на соответствие между пикселами и метрами.
Как и сказали в первом же ответе.
Решение элементарное, удобное и надежное.
Мефисто (2006-08-19 13:18:00) [52]
> McSimm © (19.08.06 13:16) [21]
Что-то подобное уже вроде обсуждалось :) Кажися програмно узнать физический размер пикселя моника.
McSimm (2006-08-19 13:16:00) [53]> Кадр видимой диагонали монитора(см. документацию)
Мастера, у меня проблема. Как программно узнать текущее разрешение экрана в пикселах я уже выяснил. Подскажите пожалуйста, как программно посмотреть в документацию к монитору - в хелп и фак не посылать, помогите, горю, и т.п.
А, это, код давай :)
(чуть не забыл)
Ketmar (2006-08-19 13:12:00) [54]> [19] isasa © (19.08.06 11:32)
а по какому праву мы это предполагаем? %-)
isasa (2006-08-19 11:32:00) [55]Мефисто (19.08.06 09:31) [18]
Ну, исходные для расчета:
Кадр видимой диагонали монитора(см. документацию) в пропорции 4:3(16:9, или что там еще) на разрешении X x Y (например, 1024x768). Предполагаем, что юзер нормально растянул картинку на весь экран(размеры по горизонтали и вертикали).
В, общем, грубо посчитать можно.
Мефисто (2006-08-19 09:31:00) [56]
> isasa © (19.08.06 08:47) [17]
Совсем не факт, утверждение частично верно если уставновлено максимальное разрешение изображения (еще ксати есть шаг между точками :) ). А вот если разрешение меньше установлено? Сколько пиксель займет физических точек моника для своего отображения?
isasa (2006-08-19 08:47:00) [57]Anatoly Podgoretsky © (19.08.06 00:24) [13]
Можно рискнуть, посчитать, отталкиваясь от размера "зерна" трубы(для LCD ?), в прдположении, что это 1 пиксел (0,2 0.22 0.25 мм).
Хотя, это тоже, не факт.
Ketmar (2006-08-19 02:29:00) [58]> [15] guav © (19.08.06 01:19)
ну и получают ерунду для диагонали, например, при неквадратных пикселах.
да и для горизонтали ерунду получают, вообще-то. %-)
guav (2006-08-19 01:19:00) [59]> А причем тут GetDeviceCaps?
При том что размер пикселей зависит от контекста. В одном случае в в сантиметре 236 пикселей в другом может быть 38, и т.д.
> [14] Ketmar © (19.08.06 00:26)
> кстати, а почему Y?
В чужих исходниках часто замечал, что когда нужно выбрать одно из разрешений, выбирают Y.
Например в InitScreenLogPixels из unit Graphics. Почему - не знаю.
Ketmar (2006-08-19 00:26:00) [60]кстати, а почему Y?