1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type"
content="text/css">
<meta http-equiv="Content-Script-Type"
content="text/javascript">
<meta name="description"
content="FreeType Overview">
<link rel="icon"
href="../../image/favicon_-60.ico">
<link rel="shortcut icon"
href="../../image/favicon_-60.ico">
<link rel="stylesheet"
type="text/css"
href="../../css/freetype2_-60.css">
<script type="text/javascript"
src="../../js/jquery-1.11.0.min.js">
</script>
<script type="text/javascript"
src="../../js/jquery.ba-resize.min.js">
</script>
<script type="text/javascript"
src="../../js/freetype2.js">
</script>
<title>FreeType Overview</title>
</head>
<body>
<div id="top"
class="bar">
<h1><a href="../../index.html">FreeType</a> Overview</h1>
</div>
<div id="wrapper">
<div class="colmask leftmenu">
<div class="colright">
<div class="col1wrap">
<div class="col1">
<!-- ************************************************** -->
<div id="what-is-freetype">
<h2>What is FreeType?</h2>
<p>FreeType 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). It can be used in graphics libraries, display
servers, font conversion tools, text image generation
tools, and many other products as well.</p>
<p>Note that FreeType is a <em>font service</em> 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.</p>
<p>FreeType is released under two open-source licenses: our
own
BSD-like <a href="http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/FTL.TXT">FreeType
License</a> and
the <a href="http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/GPLv2.TXT">GNU
Public License, Version 2</a>. It can thus be used
by any kind of projects, be they proprietary or not.</p>
<p>Please note that ‘FreeType’ is also called
‘FreeType 2’, to distinguish it from the
old, deprecated ‘FreeType 1’ library, a
predecessor no longer maintained and supported.</p>
</div>
<!-- ************************************************** -->
<div id="features">
<h2>Features</h2>
<p>The following is a non-exhaustive list of features
provided by FreeType.</p>
<ul>
<li>
<p>FreeType 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.</p>
</li>
<li>
<p>The design of FreeType 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!</p>
</li>
<li>
<p>FreeType 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), and 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 instance.</p>
<p>You can also reduce the size of the FreeType code by
only compiling the modules you need for your embedded
project or environment.</p>
</li>
<li>
<p>By default, FreeType supports the following font
formats.</p>
<ul>
<li>TrueType fonts (TTF) and TrueType collections
(TTC)</li>
<li>CFF fonts</li>
<li>WOFF fonts</li>
<li>OpenType fonts (OTF, both TrueType and CFF
variants) and OpenType collections (OTC)</li>
<li>Type 1 fonts (PFA and PFB)</li>
<li>CID-keyed Type 1 fonts</li>
<li>SFNT-based bitmap fonts, including color Emoji</li>
<li>X11 PCF fonts</li>
<li>Windows FNT fonts</li>
<li>BDF fonts (including anti-aliased ones)</li>
<li>PFR fonts</li>
<li>Type 42 fonts (limited support)</li>
</ul>
</li>
<li>
<p>From a given glyph outline, FreeType is capable of
producing a high-quality monochrome bitmap, or
anti-aliased pixmap, using 256 levels of
‘gray’.</p>
</li>
<li>
<p>FreeType supports all the character mappings defined
by the TrueType and OpenType specifications. It is
also capable of automatically synthetizing a Unicode
charmap from Type 1 fonts, avoiding painful
‘encoding translation’ problems common
with this format (of course, original encodings are
also available if necessary).</p>
</li>
<li>
<p>The FreeType core API provides simple functions to
access advanced information like glyph names or basic
kerning data.</p>
</li>
<li>
<p>A full-featured and efficient TrueType bytecode
interpreter, trying to match the results of the
Windows bytecode engine. There is also the
possibility to activate subpixel hinting
(a.k.a. <em>ClearType</em>, still under
development).</p>
</li>
<li>
<p>For those who don't need or want to use the bytecode
interpreter for TrueType fonts, we developed our
own <em>automatic hinter</em> module. It is also used
by other scalable formats.</p>
</li>
<li>
<p>Due to its modular design, it is easy to enhance the
library, providing additional format-specific
information through optional APIs (as an example, an
optional API is provided to retrieve SFNT tables from
TrueType and OpenType fonts).</p>
</li>
<li>
<p>FreeType provides its own caching subsystem. It can
be used to cache either face instances or glyph images
efficiently.</p>
</li>
<li>
<p>A bundle of demo programs demonstrate the usage of
FreeType; look for the
‘ft2demos-<i>x.x.x</i>’ archive (or
‘ftdmo<i>xxx</i>’ in case you are on a
Windows platform) at the locations
given <a href="../../download.html">here</a>.
‘<i>x.x.x</i>’ (or
‘<i>xxx</i>’) gives the version number,
for example ‘2.4.10’ or
‘2410’.</p>
</li>
</ul>
</div>
<!-- ************************************************** -->
<div id="requirements">
<h2>Requirements</h2>
<p>FreeType is written in industry-standard ANSI C and
should compile easily with any compliant C or C++
compiler. We have even taken great care to
eliminate <em>all warnings</em> when compiling with
popular compilers like gcc, Visual C++, and Borland
C++.</p>
<p>Apart from a standard ANSI C library, FreeType
doesn't have any external dependencies and can be compiled
and installed on its own on any kind of system. Some
modules <em>need</em> external libraries (e.g., for
handling fonts compressed with gzip or bz2), however, they
are optional and can be disabled.</p>
</div>
<!-- ************************************************** -->
<div id="patents">
<h2>Patent Issues</h2>
<p>All patents related to the TrueType bytecode interpreter
expired in May 2010. All patents related to the ClearType
color filtering model expired in August 2019.</p>
<p>More information regarding this topic is available at
our <a href="../../patents.html">patents page</a>.</p>
</div>
<!-- ************************************************** -->
<div class="updated">
<p>Last update: 17-Aug-2020</p>
</div>
</div>
</div>
<!-- ************************************************** -->
<div class="col2">
</div>
</div>
</div>
<!-- ************************************************** -->
<div id="TOC">
<ul>
<li class="funding">
<form action="https://www.paypal.com/cgi-bin/webscr"
method="post"
target="_top">
<input type="hidden"
name="cmd"
value="_s-xclick">
<input type="hidden"
name="hosted_button_id"
value="SK827YKEALMT4">
<input type="image"
src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif"
name="submit"
alt="PayPal - The safer, easier way to pay online!">
<img alt=""
border="0"
src="https://www.paypalobjects.com/de_DE/i/scr/pixel.gif"
width="1"
height="1">
</form>
</li>
<li class="primary">
<a href="../../index.html">Home</a>
</li>
<li class="primary">
<a href="../../index.html#news">News</a>
</li>
<li class="primary">
<a href="index.html" class="current">Overview</a>
</li>
<li class="primary">
<a href="documentation.html">Documentation</a>
</li>
<li class="primary">
<a href="../../developer.html">Development</a>
</li>
<li class="primary">
<a href="../../contact.html"
class="emphasis">Contact</a>
</li>
<li>
<!-- separate primary from secondary entries -->
</li>
<li class="secondary">
<a href="#what-is-freetype">What is FreeType?</a>
</li>
<li class="secondary">
<a href="#features">Features</a>
</li>
<li class="secondary">
<a href="#requirements">Requirements</a>
</li>
<li class="secondary">
<a href="#patents">Patents</a>
</li>
</ul>
</div>
</div> <!-- id="wrapper" -->
<div id="TOC-bottom">
</div>
</body>
</html>
|