Lewati ke konten
🛠️ToolsShed

Typography Unit Converter

Konversi unit tipografi: pt, px, em, rem, pica dan lainnya dengan pengaturan DPI.

SatuanNilai yang Dikonversi
px16
pt12
em1
rem1
pica1
mm4.2333
cm0.42333
in0.16667
ex2
ch2

Nilai Referensi Umum

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

Tentang alat ini

Unit tipografi merupakan fondasi desain digital dan cetak, namun mengonversi di antaranya—poin, piksel, em, rem, pika, dan banyak lagi—dapat menjadi membosankan dan rawan kesalahan. Baik Anda seorang desainer yang menerjemahkan spesifikasi cetak ke desain web, pengembang yang menyesuaikan ukuran font dalam konteks rendering yang berbeda, atau pembuat konten yang mengelola dokumen di berbagai platform, presisi sangat penting. Konverter ini menghilangkan keraguan dengan menerjemahkan secara instan unit tipografi apa pun ke unit lain, sambil mempertimbangkan pengaturan DPI yang memengaruhi konversi piksel-ke-poin secara signifikan.

Untuk menggunakan alat ini, cukup pilih unit sumber dan target Anda dari menu tarik-turun, masukkan nilai yang ingin Anda konversi, dan secara opsional sesuaikan pengaturan DPI jika Anda bekerja dengan media keluaran tertentu. Konverter menangani unit relatif seperti em dan rem, yang diskalakan berdasarkan ukuran font elemen induk atau akar, serta unit absolut seperti poin dan piksel. Misalnya, mengonversi 16 piksel ke rem dengan asumsi basis 16px menghasilkan 1rem, yang berguna ketika membangun desain web responsif yang diskalakan dengan elegan di berbagai perangkat.

Pertanyaan yang Sering Diajukan

Implementasi Kode

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.