'TrueType Font'에 해당되는 글 2건

  1. 2008/01/13 FreeType 을 이용한 TrueType Font 파일 읽기 (4)
  2. 2007/07/30 TrueType Font
FreeType 을 이용한 TrueType Font 파일 읽기

FreeType 다운로드
참조 : http://freetype.sourceforge.net/index2

혹시 파일을 받으려고 헤메다가 못 받으신 분은 ... -_-;;
여기서 받으세요. (FreeType 2.3.5)
http://sourceforge.net/project/showfiles.php?group_id=3157 


여기서는 비주얼 스튜디오 6.0 을 기준으로 만든 예제입니다.
물론 다른 버전을 사용하더라도 별 차이는 없습니다. : )
원본을 보시려면 다음을 참조하세요.
http://freetype.sourceforge.net/freetype2/docs/tutorial/step1.html




우선 freetype 라이브러리를 다운 받고 적당한 곳에 압축을 풀고, VS 실행.
라이브러리 세팅.
사용자 삽입 이미지





















[Tools] > [Options ...] 를 선택하면 다음과 같은 다이얼로그가 뜬다. 여기서 세팅

사용자 삽입 이미지
























[Directories] 탭을 선택하고 "Show directories for:" 항목에서 "Include files" 를 선택한 후
아까 압축을 풀었던 freetype 라이브러리의 경로를 추가한다. (include 디렉토리를 서택하면됨)
... freetype-2.3.5\include

마찬가지로
"Show directories for:" 항목에서 "Library files" 를 선택하고 objs 폴더 경로를 추가한다.
... freetype-2.3.5\objs


[Project] > [Settings ...] 를 선택하고
사용자 삽입 이미지













다음과 같이 ... freetype-2.3.5\objs 폴더에 있는 lib 파일의 이름을 추가한다.

사용자 삽입 이미지



드디어 세팅 끝 -_-;;


소스 파일에 다음과 같이 FreeType 헤더를 추가한다.

#include <ft2build.h>
#include FT_FREETYPE_H

폰트를 로딩하는 함수는 다음과 같이 .
// fontFilePath : TTF file path.
// code : unicode of character which is loaded
bool LoadFont(const char* fontFilePath, int32 code)

    FT_Library  library;   /* handle to library     */
    FT_Face     face;      /* handle to face object */

    if ( FT_Init_FreeType( &library ) ) {
        return false;
    }

    if( FT_New_Face( library, fontFilePath, 0, &face) ) {
        return false;
    }

    if( FT_Set_Pixel_Sizes( face, BITMAP_WIDTH, BITMAP_HEIGHT) ) { 
        return false;
    }

    if( FT_Load_Char( face, code, FT_LOAD_RENDER ) ) {
        return false;
    }
}

위와 같이 TrueType Font 파일의 경로와 로딩하려는 문자의 유니코드를 파라미터로 받아
함수를 실행하면 다음과 같이 face 에 데이터가 로딩된다.
(다음 예제는 굴림 폰트의 'a' 를 읽은 결과이다)

사용자 삽입 이미지








































읽은 글자에 대한 베지어 커브 컨트롤 포인트 리스트는 다음을 보면 된다.
face->glyph->outline

여기는 컨투어 개수와 컨트롤 포인트 리스트가 있다.
글자의 외곽선 정보 뿐만 아니라 비트맵 이미지도 읽을 수 있다.

face->glyph->bitmap

각 데이터 형에 관한 자세한 내용은 FreeType 페이지를 참조하라.



베지어 커브를 그릴 수 있는 적절함 함수를 추가하여서 그림을 그려보면 대략 다음과 같이
예쁜 그림을 얻을 수 있다. 이건 직접 해 보셈 -_-;

사용자 삽입 이미지

Trackback Address :: http://seirion.com/trackback/63 관련글 쓰기

댓글을 달아 주세요

  1. darkblitz 2008/01/18 01:59 Address Modify/Delete Reply

    아니 이거슨!!!
    연구실 HDD에 있던 바로 그 프로그램??!

  2. 참참 2008/01/19 16:41 Address Modify/Delete Reply

    이거.. 뭐.. 윤석이 도움주실려고 만든 포스팅? ㅋㅋ
    윤석이가.. 현규씨 뒤를 이어서.. 비슷한 쪽으로 가고 있습니다. ㄷㄷ

트루타입 폰트(TrueType Font)

Apple사에서 개발되었고, MS 윈도우즈, 리눅스 등의 OS 에서 가장 많이 사용하는 폰트이다.
(트루타입폰트 history : http://www.microsoft.com/typography/TrueTypeHistory.mspx)

특징 :
적은 데이터량으로 효율적으로 폰트를 표현한다.
베지어 커브로 구성되며, 글자의 외곽선 정보만을 가지고 있다.
따라서 별도의 rasterizer 가 필요하다.
해상도에 관계없이 글자 모양이 유지된다. (벡터 폰트의 특징)
플랫폼 독립적으로 사용된다.
코드 표현을 위해 유니코드를 사용한다.

Font Specification Download :
http://www.microsoft.com/typography/SpecificationsOverview.mspx

관련 정보
http://www.microsoft.com/typography/default.mspx

http://freetype.sourceforge.net/index2.html
http://www.truetype-typography.com/



비주얼 스튜디오를 이용한 폰트 로딩 예제 보기
http://seirion.com/63

Trackback Address :: http://seirion.com/trackback/22 관련글 쓰기

댓글을 달아 주세요