Vai al contenuto
🛠️ToolsShed

Typography Unit Converter

Converti le unità di tipografia: pt, px, em, rem, pica e altri con impostazioni DPI.

UnitàValore convertito
px16
pt12
em1
rem1
pica1
mm4.2333
cm0.42333
in0.16667
ex2
ch2

Valori di riferimento comuni

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

Informazioni sullo strumento

Le unità tipografiche sono la base del design digitale e della stampa, ma convertire tra loro—punti, pixel, em, rem, pica e altro ancora—può essere tedioso e soggetto a errori. Che tu sia un designer che traduce specifiche di stampa in design web, uno sviluppatore che regola le dimensioni dei caratteri in diversi contesti di rendering, o un creatore di contenuti che gestisce documenti su più piattaforme, la precisione è essenziale. Questo convertitore elimina l'incertezza traducendo istantaneamente qualsiasi unità tipografica in qualsiasi altra, tenendo conto delle impostazioni DPI che influiscono in modo significativo sulle conversioni da pixel a punti.

Per utilizzare lo strumento, seleziona semplicemente le tue unità di origine e di destinazione dai menu a discesa, inserisci il valore che desideri convertire e, facoltativamente, regola l'impostazione DPI se stai lavorando con media di output specifici. Il convertitore gestisce unità relative come em e rem, che si ridimensionano in base alle dimensioni dei caratteri dell'elemento padre o radice, nonché unità assolute come punti e pixel. Ad esempio, la conversione di 16 pixel in rem assumendo una base di 16px risulta in 1rem, il che è utile quando si creano design web responsivi che si adattano elegantemente su diversi dispositivi.

Domande Frequenti

Implementazione del Codice

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.