Saltar al contenido
🛠️ToolsShed

Typography Unit Converter

Convierte unidades tipográficas: pt, px, em, rem, pica y más con configuración DPI.

UnidadValor Convertido
px16
pt12
em1
rem1
pica1
mm4.2333
cm0.42333
in0.16667
ex2
ch2

Valores de Referencia Comunes

12pt = 16px @ 96dpi1in = 96px @ 96dpi1pica = 16.0px1rem = 16px1em = 16px72pt = 1in

Acerca de esta herramienta

Las unidades de tipografía son la base del diseño digital e impreso, pero convertir entre ellas—puntos, píxeles, em, rem, picas y más—puede ser tedioso y propenso a errores. Ya seas un diseñador que traduce especificaciones de impresión a diseños web, un desarrollador que ajusta tamaños de fuente en diferentes contextos de renderizado, o un creador de contenido que gestiona documentos en múltiples plataformas, la precisión es fundamental. Este convertidor elimina la incertidumbre al traducir instantáneamente cualquier unidad de tipografía a cualquier otra, mientras tiene en cuenta la configuración de DPI que afecta significativamente las conversiones de píxeles a puntos.

Para usar la herramienta, simplemente selecciona tus unidades de origen y destino en los menús desplegables, ingresa el valor que deseas convertir y, opcionalmente, ajusta la configuración de DPI si estás trabajando con medios de salida específicos. El convertidor maneja unidades relativas como em y rem, que se escalan según los tamaños de fuente de los elementos padres o raíz, así como unidades absolutas como puntos y píxeles. Por ejemplo, convertir 16 píxeles a rem asumiendo una base de 16px da como resultado 1rem, lo que es útil al construir diseños web responsivos que se adaptan elegantemente en diferentes dispositivos.

Preguntas Frecuentes

Implementación de Código

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.