다음을 통해 공유


디바이스 및 디자인 단위

애플리케이션은 글꼴을 디바이스 컨텍스트로 선택한 후에만 실제 글꼴에 대한 글꼴 메트릭을 검색할 수 있습니다. 글꼴을 디바이스 컨텍스트로 선택하면 디바이스에 맞게 크기가 조정됩니다. 디바이스와 관련된 글꼴 메트릭을 디바이스 단위라고 합니다.

글꼴의 이식 가능한 메트릭을 디자인 단위라고 합니다. 지정된 디바이스에 적용하려면 디자인 단위를 디바이스 단위로 변환해야 합니다. 다음 수식을 사용하여 디자인 단위를 디바이스 단위로 변환합니다.

DeviceUnits = (DesignUnits/unitsPerEm) * (PointSize/72) * DeviceResolution

이 수식의 변수에는 다음과 같은 의미가 있습니다.

변수 Description
DeviceUnits 디바이스 단위로 변환된 DesignUnits 글꼴 메트릭을 지정합니다. 이 값은 DeviceResolution에 지정된 값과 동일한 단위로 표시됩니다.
DesignUnits 디바이스 단위로 변환할 글꼴 메트릭을 지정합니다. 이 값은 문자 너비 또는 전체 글꼴의 오름차순 값을 포함하여 모든 글꼴 메트릭일 수 있습니다.
unitsPerEm 글꼴의 em 제곱 크기를 지정합니다.
PointSize 글꼴의 크기를 포인트 단위로 지정합니다. (1포인트는 인치의 1/72와 같습니다.)
DeviceResolution 인치당 디바이스 단위(픽셀) 수를 지정합니다. 일반적인 값은 레이저 프린터의 경우 300, VGA 화면의 경우 96일 수 있습니다.

 

이 수식은 디바이스 단위를 다시 디자인 단위로 변환하는 데 사용하면 안 됩니다. 디바이스 단위는 항상 가장 가까운 픽셀로 반올림됩니다. 전파된 라운드오프 오류는 특히 애플리케이션이 화면 크기로 작업하는 경우 매우 커질 수 있습니다.

디자인 단위를 요청하려면 높이가 unitsPerEm으로 지정된 논리 글꼴을 만듭니다. 애플리케이션은 EnumFontFamilies 함수를 호출하고 NEWTEXTMETRIC 구조의 ntmSizeEM 멤버를 확인하여 unitsPerEm의 값을 검색할 수 있습니다.