1 ttf2png - True Type Font to PNG converter
2 Copyright (c) 2004-2008 Mikko Rasa, Mikkosoft Productions
9 C compiler (preferably GCC)
15 Range of characters to convert, specified as unicode code points. The
16 default is 0,255, matching the ISO-8859-1 (Latin-1) character set.
19 Font size to use. The default is 10 pixels.
22 Number of characters to put in one line. Defaults to autodetect. Ignored
26 Character cell size. The special values auto and autorect may be used to
27 choose an autodetected square or rectangle cell, respectively. Defaults to
28 autodetected square. Ignored if -p is used.
31 Output file name. Use - for stdout; the output is a png image, so it's
32 best to pipe it somewhere. The default is font.png.
35 Force autohinter. By default native hinting is used if present in the
39 Render glyphs to alpha channel, with grey channel filled with white. By
40 default only the grey channel is used.
43 Invert colors of the glyphs. When rendering to alpha channel, only the
44 alpha channel is inverted.
47 Increase the level of verbosity.
50 Use cells in sequence, without leaving gaps. By default the position of
51 each glyph is determined by its code point. Ignored if -p is used.
54 Pack the glyphs tightly in the image. One-pixel gaps are left between
55 glyphs. By default glyphs are rendered in a regular grid. Creating a
56 definition file is recommended, as the resulting image can seem rather
60 File name to write glyph definitions. See the section below for details.
63 Print a help message with option summary.
66 Glyph definition files
68 Rendering a proportional font correctly requires some positioning and spacing
69 information, called font metrics. To that end, ttf2png can write a definition
70 file alongside the image.
72 The basic format is line-based. Empty lines, or those starting with a hash
73 sign (#), should be ignored. Data lines consist of fields separated with
76 The first data line contains five fields with overall information about the
79 Fields 1-2: width and height of the image
80 Field 3: nominal size of the font
81 Fields 4-5: ascent and descent of the font
83 Subsequent data lines each describe a single glyph and contain eight fields:
85 Field 1: the code point of the glyph
86 Fields 2-3: x and y position of the glyph in the image
87 Fields 4-5: width and height of the glyph
88 Fields 6-7: x and y offset of the glyph from its base point
89 Field 8: advance from this glyph to the next
91 The following ASCII art image illustrates most of these metrics. Note that in
92 some fonts, not all of the glyphs fit completely inside the character box.
105 _ __x___|_______|___|____|__ baseline
107 v | o-------o | | descent
120 - Improve the packing algorithm
121 - Non-square cells for grid mode
122 - Option to invert colors
125 - Restructure the code
126 - Add tight packing mode
127 - Autodetect cell size and chars-per-line in grid mode
130 - Write both X and Y offsets of glyphs to the definition file
131 - Output font ascent and descent to definition file
134 - Don't create too large image with sequential mode if the range is sparse
137 - Added output to stdout
138 - Clean up code a bit
139 - Added sequential mode
140 - Added definition file writing
143 - Added more verbosity
144 - Added transparency mode
152 This program is free software; you can redistribute it and/or
153 modify it under the terms of the GNU General Public License
154 as published by the Free Software Foundation; either version 2
155 of the License, or (at your option) any later version.
157 This program is distributed in the hope that it will be useful,
158 but WITHOUT ANY WARRANTY; without even the implied warranty of
159 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
160 GNU General Public License for more details.
162 You should have received a copy of the GNU General Public License
163 along with this program; if not, write to the Free Software
164 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.