posted by cimple 2015. 5. 27. 15:20

FreeType 은 font 와 관련된 정보를 손쉽게 추출하고 render 하기 위한 라이브러리이다. 다양한 분야에 폭넓게 응용될 수 있는 라이브러리인데, 설치 및 Python 인터페이스를 설정하는 방법에 대해 설명하겠다.


1. Freetype 홈페이지에서 소스코드를 다운로드를 받는다.


[다운로드 페이지 링크]


링크에 들어가면 Freetype 소스코드 패키지를 받을 수 있는 링크와, Winodws 사용자를 위한 바이너리 링크가 준비되어 있다. 그런데 바이너리 배포판은 Python 인터페이스 연동이 잘 되지 않아서, 직접 컴파일해서 라이브러리를 만들어 사용하도록 하자.


2. 패키지를 다운로드 받은 후 압축을 풀면, builds 폴더에 다양한 플랫폼에 대한 빌드 환경을 제공한다. windows 폴더에 들어가 보면 VS 버전별로 솔루션 파일까지 제공하는 친절함을 보여준다. 필자는 Visual Studio 2010 버전을 사용하였다.


3. 솔루션을 연 다음 그대로 컴파일해도 .lib static library 파일을 생성해서 사용할 수 있다. 


4. 그러나 우리는 python 인터페이스를 사용하기 위해서 .dll dynamic library 파일을 생성해야 하는데, 몇 가지 사전 준비작업이 필요하다.

(도움 링크 : http://stackoverflow.com/questions/6207176/compiling-freetype-to-dll-as-opposed-to-static-library)


5. 먼저 프로젝트의 속성>일반에 들어가서 '구성 형식' 을 '동적 라이브러리(.dll)' 로 바꿔준다.

6. 다음 ftoption.h 파일을 열고, 다음 두 라인을 "DLL export compilation" 섹션 근처에 삽입해준다.


#define FT_EXPORT(x) __declspec(dllexport) x
#define FT_BASE(x) __declspec(dllexport) x


7. project configuration 을 'Release' 로 바꾸어준 후, 빌드한다.

8. freetype255.dll, freetype255.lib 등 'freetypeXXX' 형태로 라이브러리가 빌드된 것을 확인할 수 있다. 우리의 동적 라이브러리에서 숫자 부분을 지우고, 'freetype.dll' 형태로 파일명을 바꾼다.


9. 다음 링크에서 freetype-py 의 최신 버전을 다운로드 받을 수 있다. 오른쪽의 'Download ZIP' 으로 한꺼번에 다운로드 한다.


[다운로드 페이지 링크] 


10. 다운받은 패키지에서 freetype 폴더를 파이썬 라이브러리 패키지 폴더 (ex. C:\Python27\Lib\site-packages) 에 복사한다.


11. freetype.dll 파일을 현재 파이썬 스크립트가 있는 폴더에 복사한다.

Notice: Document 에는 윈도우즈 시스템 폴더(C:\Windows\System32) 에 복사하라고 되어 있는데 ctypes.util.find_library('freetype') 로 찾는 패스가 제대로 작동하지 않는 것 같다. 확인요함. 도큐먼트 오류인듯.


12. Python console 을 열고,


import freetype


을 입력한 후 정상적으로 import 되면 성공이다.


13. 다음 Documentation 을 참고하며 연습해보자.


http://freetype-py.readthedocs.org/en/latest/