]> git.tdb.fi Git - ttf2png.git/blob - Readme
Generate only as tall image as needed in sequantial grid mode
[ttf2png.git] / Readme
1 ttf2png - True Type Font to PNG converter
2 Copyright (c) 2004-2008  Mikko Rasa, Mikkosoft Productions
3
4
5 Software requirements
6
7 FreeType 2
8 libpng 1.2
9 C compiler (preferably GCC)
10
11
12 Command-line options
13
14   -r <low>,<high>
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.
17
18   -s <pixels>
19     Font size to use.  The default is 10 pixels.
20
21   -l <num>
22     Number of characters to put in one line.  Defaults to autodetect.  Ignored
23     if -p is used.
24
25   -c <pixels>[x<pixels>]
26     Character cell size.  If only a single number is given, a square cell is
27     used.  The special values auto and autorect may be used to choose an
28     autodetected square or rectangle cell, respectively.  The default is auto.
29     Ignored if -p is used.
30
31   -o <filename>
32     Output file name.  Use - for stdout; the output is a png image, so it's
33     best to pipe it somewhere.  The default is font.png.
34
35   -a
36     Force autohinter.  By default native hinting is used if present in the
37     font.
38
39   -t
40     Render glyphs to alpha channel, with grey channel filled with white.  By
41     default only the grey channel is used.
42
43   -i
44     Invert colors of the glyphs.  When rendering to alpha channel, only the
45     alpha channel is inverted.
46
47   -v
48     Increase the level of verbosity.
49
50   -e
51     Use cells in sequence, without leaving gaps.  By default the position of
52     each glyph is determined by its code point.  Ignored if -p is used.
53
54   -p
55     Pack the glyphs tightly in the image.  One-pixel gaps are left between
56     glyphs.  By default glyphs are rendered in a regular grid.  Creating a
57     definition file is recommended, as the resulting image can seem rather
58     messy.
59
60   -d
61     File name to write glyph definitions.  See the section below for details.
62
63   -h
64     Print a help message with option summary.
65
66
67 Glyph definition files
68
69 Rendering a proportional font correctly requires some positioning and spacing
70 information, called font metrics.  To that end, ttf2png can write a definition
71 file alongside the image.
72
73 The basic format is line-based.  Empty lines, or those starting with a hash
74 sign (#), should be ignored.  Data lines consist of a keyword followed by
75 space-separated fields.
76
77 The keyword "font" is followed by five fields with overall information about
78 the image and the font:
79
80   Fields 1-2: width and height of the image
81   Field 3: nominal size of the font
82   Fields 4-5: ascent and descent of the font
83
84 The keyword "glyph" is followed by eight fields describing a single glyph:
85
86   Field 1: the code point of the glyph
87   Fields 2-3: x and y position of the glyph in the image
88   Fields 4-5: width and height of the glyph
89   Fields 6-7: x and y offset of the glyph from its base point
90   Field 8: advance from this glyph to the next
91
92 The keyword "kern" is followed by three fields describing kerning between two
93 glyphs:
94
95   Field 1: the code point of the left-hand glyph
96   Field 2: the code point of the right-hand glyph
97   Field 3: kerning distance between the glyphs
98
99 The following ASCII art image illustrates most of these metrics.  Note that in
100 some fonts, not all of the glyphs fit completely inside the character box.
101
102                 - - - - - - - -     ^
103                | character box |    |
104                                     |
105                |               |    |
106                    o-------o        | ascent
107                |   |       |   |    |
108                    | glyph |        |
109                |   |       |   |    |
110     base point     |       |        |
111              \ |   |       |   |    |
112               \    |       |        |
113            _ __x___|_______|___|____|__ baseline
114   y_offset |       |       |        |
115            v   |   o-------o   |    | descent
116                 - - - - - - - -     v
117            
118                |--->
119                x_offset
120
121                |--------------->
122                advance
123
124
125 Changelog
126
127 1.0
128 - Improve the packing algorithm
129 - Non-square cells for grid mode
130 - Option to invert colors
131 - Include kerning information in definition file
132
133 0.3
134 - Restructure the code
135 - Add tight packing mode
136 - Autodetect cell size and chars-per-line in grid mode
137
138 0.2.2
139 - Write both X and Y offsets of glyphs to the definition file
140 - Output font ascent and descent to definition file
141
142 0.2.1
143 - Don't create too large image with sequential mode if the range is sparse
144
145 0.2
146 - Added output to stdout
147 - Clean up code a bit
148 - Added sequential mode
149 - Added definition file writing
150
151 0.1.1
152 - Added more verbosity
153 - Added transparency mode
154
155 0.1
156 - Initial release
157
158
159 License
160
161 This program is free software; you can redistribute it and/or
162 modify it under the terms of the GNU General Public License
163 as published by the Free Software Foundation; either version 2
164 of the License, or (at your option) any later version.
165
166 This program is distributed in the hope that it will be useful,
167 but WITHOUT ANY WARRANTY; without even the implied warranty of
168 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
169 GNU General Public License for more details.
170
171 You should have received a copy of the GNU General Public License
172 along with this program; if not, write to the Free Software
173 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.