11 ответов:
здесь 72 точки на дюйм; если достаточно предположить 96 пикселей на дюйм, формула достаточно проста:
очки = пиксели * 72 / 96
есть способ получить настроенные пиксели на дюйм вашего дисплея в Windows с помощью
GetDeviceCaps. Microsoft опубликовала руководство под названием "разработка приложений с поддержкой DPI", найдите раздел "Создание шрифтов с поддержкой DPI".W3C определил пиксель измерение
pxкак именно 1/96 часть 1вл независимо от фактического разрешения вашего дисплея, поэтому приведенная выше формула должна быть хороша для всех веб-работ.
попробуйте это, если ваш код находится в форме:
Graphics g = this.CreateGraphics(); points = pixels * 72 / g.DpiX; g.Dispose();
предполагая, что 96dpi является огромный ошибка. Даже если предположение верно, есть также возможность масштабировать шрифты. Таким образом, набор шрифтов для 10pts может быть показан так, как будто это 12.5 pt (125%).
начиная с дано:
- есть 72 точки в дюйме (это то, что точка, 1/72 дюйма)
- в системе, установленной для 150dpi, есть 150 пикселей на дюйм.
- 1 в = 72pt = 150 пикселей (150 точек на дюйм для установки)
Если вы хотите найти точки (pt) на основе пикселей (px):
72 pt x pt ------ = ----- (1) for 150dpi system 150 px y pxперестановки:
x = (y/150) * 72 (2) for 150dpi systemтак:
points = (pixels / 150) * 72 (3) for 150dpi system
WPF преобразует точки в пиксели с помощью системы.Окна.FontSizeConverter. FontSizeConverter использует систему.Окна.Преобразователь длины. Преобразователь длины использует коэффициент 1.3333333333333333333333 для преобразования из точек (p) в пиксели (x): x = p * 1.3333333333333333
конечно, весь этот вопрос должен быть:
" Как получить горизонтальный и вертикальный PPI (пикселей на дюйм) монитора?"
есть 72 точки в дюйме (по определению, "точка" определяется как 1/72 дюйма, аналогично "пика" определяется как 1/72 фута). С этими двумя битами информации вы можете конвертировать из px в pt и обратно очень легко.
points = (pixels / 96) * 72 на стандартной машине XP/Vista/7 (заводские настройки)
points = (pixels / 72) * 72 на стандартном Mac под управлением OSX (заводские настройки)
Windows работает по умолчанию на 96dpi (дисплей) Маки работают по умолчанию с разрешением 72 dpi (дисплей)
72 точки постскриптума = 1 дюйм 12 поинтах = 1 постскриптум пика 6 постскриптум Picas = 72 точки = 1 дюйм
1 Точка = 1⁄72 дюйма = 25,4⁄72 мм = 0,3527 мм
DPI = точек на дюйм PPI = пикселей на дюйм LPI = количество линий на дюйм
дополнительная информация при использовании em в качестве измерения
16px = 1em (по умолчанию для обычного текста) 8em = 16px * 8 Pixels / 16 = em
линии высоты, преобразованные в точки и пиксели (моя собственная формула). Вот пример с ручным вводом 213.67 точек в поле высота строки:
213.67 Manual Entry 0.45 Add 0.45 214.12 Subtotal 213.75 Round to a multiple of 0.75 213.00 Subtract 0.75 provides manual entry converted by Excel 284.00 Divide by 0.75 gives the number of pixels of heightздесь ручной ввод 213.67 точек дает 284 пикселей.
Здесь ручной ввод 213.68 точек дает 285 пикселей.(почему 0.45? Я не знаю, но это работает.)
Comments