'software font engine'에 해당되는 글 1건

  1. 2010.03.17 FreeType2 개요 번역

아래에서 퍼옴
http://includes.egloos.com/1482677



What is FreeType 2?

FreeType 2 는 작고 능률적이고 높은 수준의 커스텀이 가능하며 이식성이 높도록 - 양질의 출력을 가능하게 하면서 - 디자인된 software font engine이다. 이 것은 graphics librarys, display servers, font conversion tools, text image generation tools, 그리고 여러가지 다른 products에도 사용될 수 있다.

FreeType 2는 하나의 font service임에 유념하라. 이 것은 text layout이나 graphics processing 같은 고수준용의 API를 제공하지 않는다. 그러나 이것은 간단하고 이용하기 쉽게 정형화된 인터페이스를 제공함으로써 저런 작업들을 아주 간단하게 만든다.

FreeType 2는 두 가지의 open-source license에 의해 배포된다. 우리 고유의 FreeType LicenseGPL이 바로 그것이다. 이 것은 어떠한 프로젝트에도 이용될 수 있고, 소유될 수도 있다(?).

Features

다음 사항들은 FreeType 2가 제공하는 대략적인 특징들이다.

-FreeType 2는 file format에 구애받지 않고 정형화된 방식으로 font에 접근 할 수 있도록, 매우 간단하고 사용하기 쉬운 API를 제공한다. 부가적으로 font file의 특정 data에 접근할 수 있도록 개별 format용의 API를 사용할 수 있다.

-다른 비교 대상들과 다르게 FreeType 2는 TrueType이나 Type1 같은 scalable font formats를 지원한다. 그리고 그 fonts의 outline data 등을 client applications에 제공할 수도 있다.

-FreeType 2는 module을 기본으로 설계되었으나, compile 시에 정적으로 link시킬 수도 있다. 이 modules는 특정 폰트용으로 사용될 수도 있고, 새 glyph image formats용으로도 사용될 수 있다.

-FreeType 2 는 embedded system을 고려하여 쓰여졌다. 즉, static writable data는 사용되지 않는다. ( ROM으로 부터 직접 돌아갈 수있다.) client application이 그 자체의 memory manager와 i/o stream implementation을 제공해 줄 수 있다.

그 이야기는 다음을 가능하게 한다. 당신은 ROM기반, 압축된 혹은 원격의 font file들을 같은 API로 쉽게 읽을 수 있다. 여러 stream inplementations 는 하나의 FreeType 2 instance로 동시에 사용될 수 있다.

당신은 당신의 embedded project/enviroment에 필요한 module만을 compile함으로써 FreeType의 사이즈도 줄일 수 있다.

기본적으로 FreeType 2 는 아래와 같은 font format들을 지원한다.
- TrueType fonts ( and collections )
- Type 1 fonts
- CID-keyed Type 1 fonts
- CFF fonts
- OpenType fonts ( TrueType과 CFF의 변형들 )
- SFNT-based bitmap fonts
- X11 PCF fonts
- Windows FNT fonts
- BDF fonts ( anti-aliased 된 것들 포함 )
- PFR fonts
- Type42 fonts ( 제한된 지원 )

주어진 글꼴의 형태로 FreeType 2는 256단계의 "회색"을 이용해서 양질의 단색 bitmap 혹은 anti-aliased pixmap을 만들 수 있다. Windows 9x/98/NT/2000, FreeType 1 의 5단계 보다 훨씬 낫다.

FreeType 2 는 TrueType 과 OpenType에서 정의된 모든 character mapping들을 지원한다. 그리고 머리 아픈 "encoding translation" 문제로 몰아넣는 Type 1으로부터 Unicode charmap을 합성해낼 수도 있다. ( 물론 원한다면 original encoding을 사용할 수 있다. )

FreeType core API 는 glypn name이나 kerning data 같은 선진 정보(advanced data를 머라 해석해야 할지)에 접근할 수 있도록 간단한 함수들을 제공한다.

성능 좋고 모든 기능을 갖춘 TrueType bytecode interpreter를 제공한다. 이 engine은 작은 사이즈에서 멋진 출력을 만들 수 있다. 모하하고 혼동을 일으키는 TrueType specifications 때문에 이 요소를 제대로 만들기란 매우 어렵지만, 이제 우리는 Windows와 Mac의 질에 밀리지 않는다. ( 부디 interpreter를 사용하기 전에 이와 관련한 우리의 특허권 조항을 읽어주길)

TrueType bytecode interpreter이 필요없거나 혹은 사용하고 싶지 않은 사람들을 위해, 우리 고유의 hinter module을 만들었다. 이 것 역시 크기가 조정 가능한 font에 사용 될 수 있다.

FreeType 2는 비슷한 font engine들에선 주로 가능하지 않은 정보들을 제공한다. 이를 테면 kerning distances 나 glyph names, vertical metrics 등등..

module 디자인 덕택에 추가적인 format-specific 정보들을 optional API들이 제공할 수 있도록 library를 강화하는 건 쉽다. ( 예를 들면 어떤 optional API는 TrueType과 OpenType fonts의 SFNT table을 검색하는 기능을 제공한다. )

FreeType 2는 release 2.0.1부터 고유의 caching subsystem을 제동한다. 이 기능은 face instances나 glyph images를 저장하는데 효과적으로 사용될 수 있다.

Requirements

FreeType 2는 산업표준의 ANSI C로 작성되었고 다른 C compiler로 쉽게 compile 된다. 심지어 우리는 유명한 compliers에서 compile 할 때 (gcc나 Visual C++혹은 Boland C++) 모든 "warning"을 제거하기 위해 하기 위해 대단한 노력을 기울였다.

표준 ANSI C library와 별개로, FreeType 2 는 어떠한 추가적 의존성을 가지고 있지 않고, 어떠한 system에서도 독립적으로 complie되고 install 된다.

Patents issues

TrueType specification의 몇몇 부분들은 여러 Apple소유의 특허권으로 덮혀 있다. TrueType gliyph를 rendering하는 것은 Apple의 IP 권리 (license를 제외하고 : 뭐지?) 를 위반하지 않고선 일반적으로 불가능하다.

아래의 설명은 우리가 이 문제를 풀어낸 약간 특별한 방법에 관한 것이다.

- 먼저, FreeType의 기본 build는 TrueType glyphs rendering에 관한 특허 기술들을 전혀 사용하지 않을 것이다.
불행하게도, 이 자유는 font design과 주어진 font와 다른 glyph metrics에 따라 때때로 이상적인 질보다 낮은 glyph를 대가로 요구한다.

- 만약에 당신이 특허권이 인정되지 않은 나라에 살거나, 당신이 Apple로부터 license를 받았다면, 그리고 최상의 품질을 원한면, library를 컴파일하기 전에 간단한 설정 macro만 실행 시키면 된다. 만세!

이 주제에 관한 추가적 정보는 우리의 TrueType Patents page(http://freetype.sourceforge.net/patents.html)에서 찾을 수 있다. 당신이 Apple로부터 license를 획득하고 싶다면 그들의 Legal Department(mailto:iplaw@apple.com)로 연락하라. 우리는 그것이 가능한지, 얼마의 비용이 소요되는지등에 관해 어떠한 정보도 줄 수 없다.

Posted by 노을삼킨별
,