Typography Unit Converter
Конвертируйте типографические единицы: pt, px, em, rem, pica и другие с настройками DPI.
| Единица | Преобразованное значение |
|---|---|
| px | 16 |
| pt | 12 |
| em | 1 |
| rem | 1 |
| pica | 1 |
| mm | 4.2333 |
| cm | 0.42333 |
| in | 0.16667 |
| ex | 2 |
| ch | 2 |
Общепринятые справочные значения
Об этом инструменте
Типографические единицы лежат в основе цифрового и печатного дизайна, но преобразование между ними — пункты, пиксели, em, rem, пики и многие другие — может быть утомительным и подверженным ошибкам. Независимо от того, являетесь ли вы дизайнером, переводящим спецификации печати в веб-дизайн, разработчиком, настраивающим размеры шрифтов в различных контекстах рендеринга, или создателем контента, управляющим документами на нескольких платформах, точность критически важна. Этот конвертер исключает неопределённость, мгновенно преобразуя любую типографическую единицу в другую, учитывая параметры DPI, которые значительно влияют на преобразование пикселей в пункты.
Чтобы использовать инструмент, просто выберите исходные и целевые единицы из раскрывающихся меню, введите значение, которое вы хотите преобразовать, и при необходимости отрегулируйте параметр DPI, если вы работаете с конкретным выходным носителем. Конвертер обрабатывает относительные единицы, такие как em и rem, которые масштабируются в зависимости от размеров шрифта родительского или корневого элемента, а также абсолютные единицы, такие как пункты и пиксели. Например, преобразование 16 пикселей в rem при предположении базы 16px даёт 1rem, что полезно при создании адаптивных веб-дизайнов, которые элегантно масштабируются на разных устройствах.
Часто задаваемые вопросы
Реализация кода
def typography_converter(value: float, from_unit: str, to_unit: str,
dpi: float = 96, base_font_px: float = 16) -> float:
"""Convert between typography units. Returns converted value."""
# Convert to px first
to_px = {
'px': lambda v: v,
'pt': lambda v: v * dpi / 72,
'pc': lambda v: v * dpi / 6,
'em': lambda v: v * base_font_px,
'rem': lambda v: v * base_font_px,
'mm': lambda v: v * dpi / 25.4,
'cm': lambda v: v * dpi / 2.54,
'in': lambda v: v * dpi,
'ex': lambda v: v * base_font_px * 0.5,
'ch': lambda v: v * base_font_px * 0.5,
}
from_px = {
'px': lambda v: v,
'pt': lambda v: v * 72 / dpi,
'pc': lambda v: v * 6 / dpi,
'em': lambda v: v / base_font_px,
'rem': lambda v: v / base_font_px,
'mm': lambda v: v * 25.4 / dpi,
'cm': lambda v: v * 2.54 / dpi,
'in': lambda v: v / dpi,
'ex': lambda v: v / (base_font_px * 0.5),
'ch': lambda v: v / (base_font_px * 0.5),
}
px = to_px[from_unit](value)
return from_px[to_unit](px)
# Examples
print(f"16px = {typography_converter(16, 'px', 'pt'):.4f}pt at 96dpi")
print(f"1em = {typography_converter(1, 'em', 'px'):.4f}px at base 16px")
print(f"12pt = {typography_converter(12, 'pt', 'px'):.4f}px at 96dpi")
print(f"1in = {typography_converter(1, 'in', 'pt'):.4f}pt")
Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.