FreeType2 2.2.1 review

by on

FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable and portable while capable of produ

License: GPL (GNU General Public License)
File size: 0K
Developer: FreeType team
0 stars award from

FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable and portable while capable of producing high-quality output (glyph images). FreeType 2 project can be used in graphics libraries, display servers, font conversion tools, text image generation tools, and many other products as well.

Note that FreeType 2 is a font service and doesn't provide APIs to perform higher-level features, like text layout or graphics processing (e.g. colored text rendering, "hollowing", etc..).

However, it greatly simplifies these tasks by providing a simple, easy to use and uniform interface to access the content of font files.
FreeType 2 is released under two open-source licenses: our own BSD-like FreeType License and the GPL. It can thus be used by any kind of projects, be they proprietary or not.

Here are some key features of "FreeType":
FreeType 2 provides a simple and easy-to-use API to access font content in a uniform way, independently of the file format. Additionally, some format-specific APIs can be used to access special data in the font file.
Unlike most comparable libraries, FreeType 2 supports scalable font formats like TrueType or Type 1 natively and can return the outline data (and control instructions/hints) to client applications.
The design of FreeType 2 is based on modules that can be either linked statically to the library at compile time, or loaded on demand at runtime. Modules are used to support specific font formats, or even new glyph image formats !
FreeType 2 was written with embedded systems in mind. This means that it doesn't use static writable data (i.e. it can be run from ROM directly), that client applications can provide their own memory manager and i/o stream implementation.
The latter allows you to easily read from ROM-based, compressed or remote font files with the same API. Several stream implementations can be used concurrently with a single FreeType 2 instance.
You can also reduce the size of the FreeType 2 code by only compiling the modules you need for your embedded project/environment.
By default, FreeType 2 supports the following font formats:
TrueType fonts (and collections)
Type 1 fonts
CID-keyed Type 1 fonts
CFF fonts
OpenType fonts (both TrueType and CFF variants)
SFNT-based bitmap fonts
X11 PCF fonts
Windows FNT fonts
BDF fonts (including anti-aliased ones)
PFR fonts
Type42 fonts (limited support)
From a given glyph outline, FreeType 2 is capable of producing a high-quality monochrome bitmap, or anti-aliased pixmap, using 256 levels of "gray". This is much better than the 5 levels used by Windows 9x/98/NT/2000 or FreeType 1.
FreeType 2 supports all the character mappings defined by the TrueType and OpenType specification. It is also capable of automatically synthetizing a Unicode charmap from Type 1 fonts, which puts an end to the painful "encoding translation" headache common with this format (of course, original encodings are also available in the case where you need them..).
The FreeType 2 core API provides simple functions to access advanced information like glyph names or kerning data.
A full-featured and efficient TrueType bytecode interpreter. The engine is able to produce excellent output at small point sizes. This component has been extremely difficult to get right, due to the ambiguous and misleadings TrueType specifications. However, we now match Windows and Mac qualities. Please read our Patents page to learn more about some issues when using the interpreter.
For those who don't need or want to use the bytecode interpreter for TrueType fonts, we developed our own automatic hinter module. It is also used by other scalable formats.
FreeType 2 provides information that is often not available from other similar font engines, like kerning distances, glyph names, vertical metrics, etc..
Due to its modular design, it's easy to enhance the library to provide additional format-specific information through optional APIs (as an example, an optional API is provided to retrieve SFNT tables from TrueType and OpenType fonts).
FreeType 2 provides its own caching subsystem since release 2.0.1. It can be used to cache either face instances or glyph images efficiently.

FreeType 2 is written in industry-standard ANSI C and should compile easily with any compliant C compiler. We've even taken great care to eliminate all warnings when compiling with popular compilers like gcc, Visual C++ and Borland C++.
Apart from a standard ANSI C library, FreeType 2 doesn't have any external dependencies and can be compiled and installed on its own on any kind of system.

FreeType2 2.2.1 keywords