1470
|
1 Usage:
|
|
2 ~~~~~~
|
1505
|
3 1. Make sure you have FreeType 2 installed.
|
|
4 2. Get a TrueType or Type 1 font.
|
1607
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
5 3. Run ./configure from mplayer's root directory.
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
6 4. Modify `runme' script for your encoding and font path.
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
7 5. Type: ./runme
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
8 6. Copy *.raw and font.desc files to ~/.mplayer/font/
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
9 7. Run subfont alone to see more options.
|
1470
|
10
|
|
11
|
1505
|
12 About:
|
|
13 ~~~~~~
|
|
14 `subfont' program renders antialiased OSD and subtitle fonts for mplayer.
|
|
15
|
|
16 What you get are bitmap and alpha *.raw files and a font.desc.
|
|
17 What you need is TrueType, Type 1 or any other font supported by FreeType.
|
|
18
|
|
19 Alpha channel is created using outline and Gaussian blur filters.
|
|
20
|
|
21 ANY encoding is now supported! That is, all 8-bit encodings known by libc
|
|
22 and user-supplied encodings (also multibyte) through custom encoding files.
|
|
23
|
|
24 I prepared also Type 1 font `osd.pfb' for OSD characters based on bitmaps
|
|
25 created by chass.
|
|
26
|
|
27
|
1676
|
28 Encodings:
|
|
29 ~~~~~~~~~~
|
|
30 You can get any encoding and any charset.
|
|
31 1. If you want 8-bit charset, which is known to libc, encoded either in 8-bit
|
|
32 or Unicode (like ISO-8859-*, KOI8-*):
|
|
33
|
|
34 Find correct encoding name using `iconv --list' (on RedHat) and use it.
|
|
35 For latin2 subtitles I would write:
|
|
36 ./subfont iso-8859-2 24 verdana.ttf
|
|
37 and for UTF-8 subtitles with latin2 charset:
|
|
38 ./subfont --unicode iso-8859-2 24 verdana.ttf
|
|
39
|
|
40 2. If you want encoding not known to libc or non 8-bit (like EUC-KR):
|
|
41
|
|
42 Create file describing your charset:
|
1505
|
43
|
1676
|
44 For each character you want to render write the line consisting of:
|
|
45 hexadecimal Unicode character code
|
|
46 followed by whitespace
|
|
47 followed by hexadecimal number representing your encoding
|
|
48 followed by new line character
|
|
49 or (for UTF-8 subtitles):
|
|
50 hexadecimal Unicode character code
|
|
51 followed by new line character.
|
1505
|
52
|
1676
|
53 Example:
|
|
54 To render a single letter `aogonek' (Unicode 0x0105) and encode
|
|
55 it using iso-8859-2 encoding (0xB1), your custom encoding file will consist
|
|
56 of a sigle line:
|
|
57 0105 B1
|
|
58
|
|
59 or to get unicode font.desc, write only:
|
|
60 0105
|
|
61
|
|
62 Subfont was tested with Korean fonts from truetype-fonts-ko-2.0-1k.noarch.rpm
|
|
63 I found on http://rpmfind.net/ and euc-kr encoding. Custom encoding file
|
|
64 for euc-kr was generated from charmap I found in /usr/share/i18n/charmaps/EUC-KR.gz
|
|
65 (glibc package). Simple script for this you will find in encodings directory.
|
|
66 This should work with -unicode switch for mplayer (though this is not Unicode).
|
|
67 It took about 10 seconds to render over 8000 characters on P3 @ 600MHz.
|
1505
|
68
|
|
69
|
1607
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
70 New font.desc format (proposal):
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
71 ~~~~~~~~~~~~~~~~~~~~~==========~
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
72 Subfont will generate new font.desc format when compiled with NEW_DESC macro defined
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
73 (uncomment appropriate line in Makefile).
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
74
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
75 These changes are to make bitmaps smaller and processing faster.
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
76
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
77 Changes to [info] section:
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
78 There is no `spacewidth'. It will not be useful.
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
79 `height` is the distance from one baseline to the next.
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
80 `ascender' is the distance from the baseline to the highest grid coordinate used to place the outline point.
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
81 `descender' is the distance from the baseline to the lowest grid coordinate used to place the outline point.
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
82 Note: upwards direction is positive.
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
83 Read more: freetype-2.*/docs/glyphs/glyphs-3.html
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
84
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
85 Changes to [characters] section:
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
86 Bitmap start and bitmap end are replaced with:
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
87 bitmap start,
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
88 bitmap width,
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
89 bitmap height,
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
90 left bearing -- the horizontal distance from the current pen position to the bitmaps's left edge,
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
91 top bearing -- the vertical distance from the baseline to the bitmaps's top edge,
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
92 advance -- the horizontal distance the pen position must be incremented by after each glyph is rendered.
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
93
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
94 To anderstand this you must think in verctorial coordinates.
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
95 Necessarily read freetype-2.*/docs/glyphs/glyphs-7.html about vectorial coordinates!
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
96
|
7336606415f2
Implemented new Gaussian blur algorithm, extended font.desc format, optimized for speed and memory usage.
zybi
diff
changeset
|
97
|
1505
|
98 Notes:
|
|
99 ~~~~~~
|
|
100 + Starting x position of each character and the bitmap width is aligned
|
|
101 to multiple of 8 (required by mplayer).
|
|
102
|
|
103 + My development platform is RedHat 7.1. FreeType versions tested are
|
|
104 2.0.1 through 2.0.4.
|
|
105
|
|
106 + FreeType library has a bug that makes subfont display some warning message
|
|
107 about Unicode charmap for osd.pfb.
|
1470
|
108
|
|
109
|
|
110 Author:
|
|
111 ~~~~~~~
|
|
112 Artur Zaprzala <zybi@fanthom.irc.pl>
|