FontRenderContext 클래스
FontRenderContext 클래스
FontRenderContext 클래스는 텍스트를 정확하게 측정하는 데 필요한 정보를 담는 컨테이너예요. 텍스트 측정은 윤곽선을 픽셀로 매핑하는 규칙과 애플리케이션이 제공하는 렌더링 힌트에 따라 달라져요.
본문
측정에 영향을 주는 정보 중 하나는 타이포그래피 포인트를 픽셀로 스케일하는 변환(transform)이에요. 포인트는 정확히 1/72인치로 정의되는데, 이는 전통적인 기계 측정 방식의 포인트와는 약간 달라요.
public class FontRenderContext
extends Object
600dpi 장치에서 12pt로 렌더링한 문자가 72dpi 장치에서 12pt로 렌더링한 문자와 크기가 다를 수 있어요. 픽셀 경계로 반올림되거나 글꼴 디자이너가 지정한 힌트 때문이에요. 애플리케이션이 지정한 안티앨리어싱과 분수 메트릭(Fractional-metrics)도 픽셀 경계 반올림 때문에 문자 크기에 영향을 줄 수 있어요.
사용 방법
보통 FontRenderContext 인스턴스는 Graphics2D 객체에서 얻어요. Graphics2D.getFontRenderContext()로 현재 그래픽 컨텍스트의 렌더링 조건을 반영한 컨텍스트를 가져올 수 있어요.
직접 생성한 FontRenderContext는 실제 그래픽 장치를 나타내지 않을 가능성이 높아서, 예상치 못하거나 잘못된 결과를 낼 수 있어요. 텍스트 측정이 필요한 TextLayout 같은 클래스는 이 컨텍스트를 인자로 받아 글자를 정확히 배치해요.
측정에 영향 주는 요소
- 글꼴 디자이너가 지정한 힌트
- 픽셀 경계 반올림 규칙
- 안티앨리어싱 설정
- 분수 메트릭 사용 여부
이런 요소들이 합쳐져서 같은 문자가 장치마다 다르게 렌더링되고 측정될 수 있어요.