1 ttf2png - True Type Font to PNG converter
2 Copyright (c) 2004-2018 Mikko Rasa, Mikkosoft Productions
9 C compiler (preferably GCC)
15 Range of code points to convert, specified as unicode code points. The
16 default is 0,255, matching the ISO-8859-1 (Latin-1) character set. Code
17 points can be specified as plain numbers, unicode code points (U+xxxx) or
18 UTF-8 characters. This option can be specified multiple times to add
19 more ranges to be converted.
22 Font size to use. The default is 10 pixels.
25 Number of glyphs to put in one line. Defaults to autodetect. Ignored
28 -c <pixels>[x<pixels>]
29 Character cell size. If only a single number is given, a square cell is
30 used. The special values auto and autorect may be used to choose an
31 autodetected square or rectangle cell, respectively. The default is auto.
32 Ignored if -p is used.
35 Output file name. Use - for stdout; the output is a png image, so it's
36 best to pipe it somewhere. The default is font.png.
39 Force autohinter. By default native hinting is used if present in the
43 Render glyphs to alpha channel, with grey channel filled with white. By
44 default only the grey channel is used.
47 Invert colors of the glyphs. When rendering to alpha channel, only the
48 alpha channel is inverted. The default is to render black glyphs on a
52 Increase the level of verbosity.
55 Use cells in sequence, without leaving gaps. By default the position of
56 each glyph is determined by its code point. Ignored if -p is used.
59 Pack the glyphs tightly in the image. Small gaps are left between glyphs,
60 controlled by the -n option. By default glyphs are rendered in a regular
61 grid. Creating a definition file is recommended, as the resulting image
62 can seem rather messy.
65 Leave a margin around the edges of the generated image. By default glyphs
66 can touch the edges. Only used with -p.
69 Control the amount of padding between glyphs. The default is 1 pixel.
73 Allow the resulting image to have a non-power-of-two size. By default the
74 image size is rounded up to a power of two for maximum compatibility.
77 Generate a distance field texture. The argument controls the amount of
78 oversampling when calculating distances. Larger values may produce more
79 accurate results but take longer to process. Distance fields are always
80 stored without alpha and with large/positive values indicating the inside
81 of glyphs; the -t and -i options are ignored.
84 Set the border zone width for distance field. The default is the square
85 root of the font size.
88 File name to write glyph definitions. See the section below for details.
91 Print a help message with option summary.
94 Glyph definition files
96 Rendering a proportional font correctly requires some positioning and spacing
97 information, called font metrics. To that end, ttf2png can write a definition
98 file alongside the image.
100 The basic format is line-based. Empty lines, or those starting with a hash
101 sign (#), should be ignored. Data lines consist of a keyword followed by
102 space-separated fields.
104 The keyword "font" is followed by five fields with overall information about
105 the image and the font:
107 Fields 1-2: width and height of the image
108 Field 3: nominal size of the font
109 Fields 4-5: ascent and descent of the font
111 The keyword "glyph" is followed by eight fields describing a single glyph:
113 Field 1: the code point of the glyph
114 Fields 2-3: x and y position of the glyph in the image
115 Fields 4-5: width and height of the glyph
116 Fields 6-7: x and y offset of the glyph from its base point
117 Field 8: advance from this glyph to the next
119 The keyword "kern" is followed by three fields describing kerning between two
122 Field 1: the code point of the left-hand glyph
123 Field 2: the code point of the right-hand glyph
124 Field 3: kerning distance between the glyphs
126 The following ASCII art image illustrates most of these metrics. Note that in
127 some fonts, not all of the glyphs fit completely inside the character box.
140 _ __x___|_______|___|____|__ baseline
142 v | o-------o | | descent
155 - Alternate ways of specifying code point ranges
156 - Multiple code point ranges can be specified
157 - Option to generate non-power-of-two images
158 - Support for distance field generation
161 - Controllable margin and padding in packed mode
162 - Do not generate overly large images in sequential grid mode
165 - Improve the packing algorithm
166 - Non-square cells for grid mode
167 - Option to invert colors
168 - Include kerning information in definition file
171 - Restructure the code
172 - Add tight packing mode
173 - Autodetect cell size and chars-per-line in grid mode
176 - Write both X and Y offsets of glyphs to the definition file
177 - Output font ascent and descent to definition file
180 - Don't create too large image with sequential mode if the range is sparse
183 - Added output to stdout
184 - Clean up code a bit
185 - Added sequential mode
186 - Added definition file writing
189 - Added more verbosity
190 - Added transparency mode
198 This program is free software; you can redistribute it and/or
199 modify it under the terms of the GNU General Public License
200 as published by the Free Software Foundation; either version 2
201 of the License, or (at your option) any later version.
203 This program is distributed in the hope that it will be useful,
204 but WITHOUT ANY WARRANTY; without even the implied warranty of
205 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
206 GNU General Public License for more details.
208 You should have received a copy of the GNU General Public License
209 along with this program; if not, write to the Free Software
210 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.