Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сколько пикселей в 1 сантиметре? / 12 сообщений из 12, страница 1 из 1
29.11.2007, 15:22
    #34975352
Solver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сколько пикселей в 1 сантиметре?
Подскажите, сколько пикселей в 1 сантиметре?
...
Рейтинг: 0 / 0
29.11.2007, 15:42
    #34975450
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сколько пикселей в 1 сантиметре?
Это зависит от разрешения и размера экрана. Ищи WinAPI функции получения первого и второго.

А тебе это зачем?
...
Рейтинг: 0 / 0
29.11.2007, 15:43
    #34975452
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сколько пикселей в 1 сантиметре?
SolverПодскажите, сколько пикселей в 1 сантиметре?
По вертикали или по горизонтали?
...
Рейтинг: 0 / 0
29.11.2007, 17:16
    #34975870
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сколько пикселей в 1 сантиметре?
Посмотри здесь

Как перевести координату в пикселях (Pixcels) в твипы (Twips)

В этом примере

GetDeviceCaps(m.liHDC,88) - количество пикселей в логическом дюйме по вертикали
GetDeviceCaps(m.liHDC,90) - количество пикселей в логическом дюйме по горизонтали

1 дюйм = 25,4 миллиметра

m.liHDC - Handle to the device context. Идентификатор контекста устройства.

Только следует понимать, что в данном случае и пиксель, и сантиметр, и дюйм - это величины логические, а не постоянные. Зависят от конкретного устройства и его настроек.

Например, при разных разрешениях монитора можно получить разные значения. Хотя, для обычных мониторов (с электронно-лучевой трубкой) и стандартных разрешениях вроде 640х480 или 800х600 обычно получается 96 пикселей на один логический дюйм или 38 пикселей на один логический сантиметр.
...
Рейтинг: 0 / 0
29.11.2007, 17:37
    #34975952
Solver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сколько пикселей в 1 сантиметре?
Спасибо всем!
Вообще-то я имел ввиду сантиметры не на экране, а при печати.
...
Рейтинг: 0 / 0
29.11.2007, 17:40
    #34975970
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сколько пикселей в 1 сантиметре?
Вообще-то я имел ввиду сантиметры не на экране, а при печати.
У принтеров пиксели тоже разного размера. Вся техинфо в доке на принтер.
...
Рейтинг: 0 / 0
29.11.2007, 20:21
    #34976446
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сколько пикселей в 1 сантиметре?
SolverСпасибо всем!
Вообще-то я имел ввиду сантиметры не на экране, а при печати.
Зависит от настроек и типа принтера. Можно сказать точно точка растра (это та, которая указана в параметре DPI - dots per inch - точек на дюйм) говорит о минимальнойм размере точки. Один пиксел отображается несколькимя точками. Нужный параметр LPI-lines per inch - линии на дюйм. Только этот параметр производители обычно не указывают если это не профессиональное оборудование
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
21.12.2008, 09:02
    #35726377
Сколько пикселей в 1 сантиметре?
Solver, В 1 см. - 40 пикселей!!!
...
Рейтинг: 0 / 0
21.12.2008, 14:38
    #35726524
piva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сколько пикселей в 1 сантиметре?
Ильин КолянSolver, В 1 см. - 40 пикселей!!!
Линейкой мерял ?
...
Рейтинг: 0 / 0
22.12.2008, 06:05
    #35726961
Kruchinin Pahan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сколько пикселей в 1 сантиметре?
pivaИльин КолянSolver, В 1 см. - 40 пикселей!!!
Линейкой мерял ?
Нет, он взял шрифт System, написал им фразу "1 см." и посчитал количество пикселей которыми начертана данная фраза.
...
Рейтинг: 0 / 0
02.01.2009, 23:54
    #35743468
Dinozavr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сколько пикселей в 1 сантиметре?
Solver, меня тоже очень интересовал этот вопрос.
Дело в том, что захотелось мне в свое время, чтобы в отчете с переменной высотой детали (от 1 до 5 строк печати) разбиение на страницы происходило бы "культурно", т.е. без больших запасов и разрывов строк таблицы.
Я долго экспериментировал (принтер HP LaserJet 5L PCL, шрифт Arial) и в результате получил значение: 1 пиксел на печати = 0.268 мм .
Кроме того, некоторое время назад в каком-то редакторе изображений (не помню, в каком, возможно для фотопринтера-сканера-копира HP 5700) в опции задания размера для печати была возможность указывать размер либо в мм, либо в пикселах. Так вот, сопоставление значений для одного и того же размера дало значение: 1 пиксел на печати = 0.263 мм.
Как видите, результаты близкие. Кстати, можно еще сравнить координаты какого-либо объекта на поле отчета путем включения опции View - Show position и установки разных метрик в File - Page Setup - Ruler/Grid. Тоже получается 0.263 - 0.264.
Пользуясь этими значениями, я могу еще до печати определить, сколько строк займет на печати текст из очередной записи. Следовательно, я могу еще до печати разбить данные по страницам. Несмотря на всю эмпиричность, практические результаты (вид отчета) вполне удовлетворительны.
Если нужны подробности - спрашивайте.

Всем поздравления с Новым Годом и наилучшие пожелания!

P.S. Ниже привожу текст функции, которой я пользуюсь для этой цели.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
******************************************************************************
*  Определить, сколько строк займет текст в колонке отчета заданной ширины,  * 
*  если он выводится в поле Stretch		                                     *
******************************************************************************
FUNCTION GetTextKolRows
LPARAMETERS tnFieldWidth, tcText, tcFontName, tnFontSize

* Входные параметры:
*	tnFieldWidth - ширина заполняемого поля в миллиметрах
* 	tcText - текст, выводимый в поле
* 	tcFontName - имя шрифта
* 	tnFontSize - размер шрифта

* Предупреждение  1 . Эта функция - сплошная эвристика в том смысле,
*                   что точно не определен алгоритм разбиения текста 
*                   на строки для полей Stretch при печати отчета.
*
* Предупреждение  2 . Пиксел здесь эмпирически считается  0 . 268  мм.
*
* Функция отлажена и проверена при ширине поля  52 . 9  мм и шрифте Arial, 8 . 
* Результат - удовлетворительный, т.е. функция правильно предсказывала количество строк,  
* на которые фактически разбивался текст в колонке при печати отчета.

LOCAL lnKolStr, lnFieldWidthF
lnFieldWidthF = tnFieldWidth /  0 . 268  / FONTMETRIC( 6 , tcFontName, tnFontSize)		&& Ширина поля в фокселах
					  
LOCAL lcTextRest, lnFieldRest, lcNextWord, lcTextRow, lni, lnj, lnKolWords 
lcTextRest = ALLTRIM(tcText)			&& Остаток текста для текущей строки
lnFieldRest = lnFieldWidthF 			&& Ширина свободного остатка поля в фокселах
lcTextRow = ""							&& Текст в очередной строке поля
lnKolStr =  0 

DO WHILE NOT EMPTY(lcTextRest)						&& Цикл виртуального разбиение текста на строки
	lcTextRow = ""									&& Текст в очередной строке поля
	lnKolWords = GETWORDCOUNT(lcTextRest)			&& Количество слов в остатке текста
	FOR lni= 1  TO lnKolWords 						&& Цикл заполнения строки
		lcNextWord = GETWORDNUM(lcTextRest, lni)	&& Очередное слово из остатка текста
		
		IF TXTWIDTH(lcNextWord, tcFontName, tnFontSize) > lnFieldWidthF 
				*-- Если очередное слово длиннее всего поля, то его надо разбить,
				*-- т.е. в остаток поля поместить то, что влезет,
				*-- а затем перейти к новой строке
				
			lnFieldRest = lnFieldWidthF - TXTWIDTH(lcTextRow, tcFontName, tnFontSize)	&& Ширина свободного остатка поля
			
			lnj =  1    					&& Количество сиволов, помещаемых в остаток поля
			DO WHILE lnj<=LEN(lcNextWord) .AND. TXTWIDTH(SUBSTR(lcNextWord,  1 , lnj), tcFontName, tnFontSize) <= lnFieldRest
				lnj = lnj+ 1  
			ENDDO

			lcTextRow = lcTextRow + SUBSTR(lcNextWord,  1 , lnj- 1 )				&& Текст в очередной строке поля

			lnKolStr = lnKolStr +  1 			&& Закончить строку 
			
			lcTextRest = ALLTRIM(SUBSTR(lcTextRest, IIF(lni= 1 ,  1 , AT(" ", lcTextRest, lni- 1 )+ 1 ) + lnj- 1 ))
			
			EXIT
		ELSE
			IF TXTWIDTH(lcTextRow + lcNextWord, tcFontName, tnFontSize) <= lnFieldWidthF 
					*-- Если очередное слово можно добавить к строке --*
				lcTextRow = lcTextRow + lcNextWord + " " 	&& Текст строки с добавленным словом
				
				IF lni = lnKolWords					&& Если добавляется последнее слово
					lnKolStr = lnKolStr +  1 			&& Закончить строку
					lcTextRest = ""
					EXIT
				ENDIF 
			ELSE		&& Если очередное слово (которое короче поля) нельзя добавить к строке --*
				lnKolStr = lnKolStr +  1 			&&  Закончить строку
				lcTextRest = ALLTRIM(SUBSTR(lcTextRest, IIF(lni= 1 ,  1 , AT(" ", lcTextRest, lni- 1 ))))
				EXIT
			ENDIF
		ENDIF
	ENDFOR
	
*	MESSAGEBOX(lcTextRow) 
ENDDO

RETURN MAX( 1 , lnKolStr)
************************************************************
...
Рейтинг: 0 / 0
03.11.2009, 12:59
    #36288080
pna
pna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сколько пикселей в 1 сантиметре?
Владимир М,спасибо,что ответили на вопрос по-человечески :без "зачем" и т.д.Мне это понадобилось.Если бы я спросила спросила дома своего действительно знающего специалиста,то выслушала бы целую лекцию про кучу мне ненужного.Оттого ценю ,когда просто отвечают на вопрос.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сколько пикселей в 1 сантиметре? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]