비공개2010. 4. 7. 12:18

        - 언제 써야 하나?

운영체제에 설치되지 않은 폰트를 사용하고 싶을 때는 폰트를 직접 읽어야 한다. 예를 들어 문서에 내장된 폰트라든가 네트워크를 통해 공유된 폰트를 사용해야 할 때 등의 경우가 이에 해당한다.


■ 워드 아트처럼 글자의 모양을 마음대로 변형하고 싶을 때. 운영체제는 글꼴을 아주 정상적인 모양으로 출력하는 기능만 제공하므로 변형하려면 외곽선을 직접 조작해야 한다.


글자의 스타일을 다양하게 주고 싶을 때. 굵게, 이탤릭 정도는 되지만 이중 외곽선이나 글자 색상과 다른 특이한 밑줄 같은 것은 줄 수 없다. 직접 그려야 한다.

플랫폼에 독립적인 응용 프로그램을 만들 때도 폰트 엔진을 사용해야 한다. 운영체제가 제공하는 고수준 함수는 쓰기는 편하지만 포맷에 종속적이다.

이 외에도 폰트 엔진이 필요한 경우는 많다. 하옇든 운영체제가 제공하는 문자열 출력 기능이 뭔가 부족할 때 직접 폰트를 다루어야 한다. 폰트 엔진은 폰트를 떡 주무르듯이 주무를 수 있게 해 주며 부족한 2%를 넉넉하게 채워줄 수 있다.



- 특징

■ 폰트 파일에 독립적이다. 특정 포맷만 읽는 것이 아니라 다양한 폰트를 일관된 인터페이스로 읽을 수 있다. TypeType, OpenType, Type1, CFF, PFR, BDF 등등 현재 널리 사용되는 거의 모든 폰트를 읽을 수 있다.


확대 가능한(Scalable) 폰트를 지원한다. 외곽선 추출 기능이 있어서 품질 저하없이 미려한 모양으로 얼마든지 크게 출력할 수 있다. 비트맵 폰트도 물론 지원한다.


■ 힌트, 커닝 등의 고급 정보들도 섬세하게 조작할 수 있으며 트루타입 인터프리터까지 내장되어 있어 작은 크기로 출력해도 가독성이 높은 문자열을 출력할 수 있다.


256 레벨의 안티 알리아싱 기능이 제공되어 고품질의 텍스트를 출력할 수 있다. 윈도우즈 2000 이하의 버전에서 고작 5레벨의 안티 알리아싱을 제공하는데 비해 훨씬 더 품질이 높다.


응용 프로그램에 연결하는 형태가 자유롭다. 컴파일 타임에 정적으로 연결할 수도 있고 DLL로 만들어 실행중에 연결하여 사용할 수도 있다.


■ 라이브러리 내에 쓰기 가능한 전역 변수가 없으며 필요한 모든 메모리를 동적으로 할당한다. 그래서 ROM에서도 바로 실행할 수 있는데 이런 특성으로 인해 모바일 환경에도 충분히 활용할 수 있다. 즉, 영문폰에 한글 문자열을 출력할 수 있다는 뜻이다.


■ 라이브러리 자체는 표준 C언어로 작성되어 있어 함수만 호출하면 바로 사용할 수 있다. 물론 객체 지향적인 라이브러리보다 손이 많은 가기는 하지만 함수 레벨의 라이브러리가 처음 배우기 쉽고 효율도 좋다. C언어만 컴파일할 수 있으면 어떤 컴파일러에서나 사용할 수 있다. 물론 C++ 컴파일러에서도 당연히 사용 가능하다.


특허가 걸린 기술은 일체 사용하지 않는다. 예를 들어 TrueType 관련 기술들은 애플사가 특허를 보유하고 있는데 이런 기술들은 대체 기술을 적용한다. 그래서 소송 걱정없이 사용할 수는 있지만 특정 기능에서는 품질이 조금 떨어질 수도 있다.


FreeType은 텍스트를 바로 출력하는 고수준의 함수가 아니라 저수준의 서비스이다. 그래서 텍스트 출력, 문자열 정렬, 캐싱 등의 작업은 직접 해야 한다. 또한 폰트를 읽기만 할 뿐 편집하는 기능도 제공되지 않는다. 즉, 아무나 쉽게 쓸 수 있는 먹기 좋은 떡은 아닌 셈이다.



출처 : http://www.winapi.co.kr/ >>> 라이브러리 > FreeType

소개, 사용법등 강좌가 잘 되있네 ㅎㅎ

'비공개' 카테고리의 다른 글

Window Tabs ( Ver. Visual Studio 6.0 )  (0) 2010.04.08
Syntax High Lighter 세팅 / 사용법  (0) 2010.04.08
Direct3D 8에서 GDI 함수를 대체한다.  (0) 2010.04.06
현재 윈도우 OS 정보 가져오기  (0) 2010.03.30
Dos Tree 명령어  (0) 2010.03.29
Posted by 닭꽝