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

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

Как перевести координату в пикселях (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
Сколько пикселей в 1 сантиметре?
    #34975952
Solver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем!
Вообще-то я имел ввиду сантиметры не на экране, а при печати.
...
Рейтинг: 0 / 0
Сколько пикселей в 1 сантиметре?
    #34975970
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще-то я имел ввиду сантиметры не на экране, а при печати.
У принтеров пиксели тоже разного размера. Вся техинфо в доке на принтер.
...
Рейтинг: 0 / 0
Сколько пикселей в 1 сантиметре?
    #34976446
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolverСпасибо всем!
Вообще-то я имел ввиду сантиметры не на экране, а при печати.
Зависит от настроек и типа принтера. Можно сказать точно точка растра (это та, которая указана в параметре DPI - dots per inch - точек на дюйм) говорит о минимальнойм размере точки. Один пиксел отображается несколькимя точками. Нужный параметр LPI-lines per inch - линии на дюйм. Только этот параметр производители обычно не указывают если это не профессиональное оборудование
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Сколько пикселей в 1 сантиметре?
    #35726377
Solver, В 1 см. - 40 пикселей!!!
...
Рейтинг: 0 / 0
Сколько пикселей в 1 сантиметре?
    #35726524
piva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ильин КолянSolver, В 1 см. - 40 пикселей!!!
Линейкой мерял ?
...
Рейтинг: 0 / 0
Сколько пикселей в 1 сантиметре?
    #35726961
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pivaИльин КолянSolver, В 1 см. - 40 пикселей!!!
Линейкой мерял ?
Нет, он взял шрифт System, написал им фразу "1 см." и посчитал количество пикселей которыми начертана данная фраза.
...
Рейтинг: 0 / 0
Сколько пикселей в 1 сантиметре?
    #35743468
Dinozavr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Сколько пикселей в 1 сантиметре?
    #36288080
pna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pna
Гость
Владимир М,спасибо,что ответили на вопрос по-человечески :без "зачем" и т.д.Мне это понадобилось.Если бы я спросила спросила дома своего действительно знающего специалиста,то выслушала бы целую лекцию про кучу мне ненужного.Оттого ценю ,когда просто отвечают на вопрос.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Сколько пикселей в 1 сантиметре?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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