본문으로 건너뛰기
🛠️ToolsShed

Typography Unit Converter

타이포그래피 단위(pt, px, em, rem, pica 등)를 DPI 설정으로 변환합니다.

단위변환된 값
px16
pt12
em1
rem1
pica1
mm4.2333
cm0.42333
in0.16667
ex2
ch2

일반적인 참조 값

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

이 도구 소개

타이포그래피 단위는 디지털과 인쇄 디자인의 기초이지만, 포인트, 픽셀, 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.