Introducing the “Tin” open source project…
I’d like to preface this article by stating that it was written and contributed by our esteemed colleague, Daniel “daan” Strebe, who works in our Seattle office. – KL
Please welcome Tin, Adobe’s newest open source project. Tin is a C++ source-code library for manipulating fonts based on the SFNT file format, such as TrueType and OpenType.
The Tin code is fast enough to modify the largest fonts in real time, and relies only on open source components. (Note: Tin is not an editor for glyph outlines, nor does it locate, install, or manage font binaries or deal with OS font services in any way.)
As a source-code library, Tin is intended for use by programmers who have legitimate need for manipulating font binaries. Almost all of the standard tables for TrueType and OpenType (including CFF) can be accessed and modified. Software incorporating Tin can easily do things like parse a font down to its individual bits, inspect font traits, manipulate the contents of font tables, and add glyphs to or remove glyphs from a font. These services can aid in the creation of fonts, in the verification of font integrity, in the fixing of font bugs, and in font subsetting. They can even augment existing fonts with new glyphs, such as those with diacritical marks, to expand the utility of a font during its active use within a single application or even a single document, such as occurs in the SING model.
As the product of a specific project within Adobe, Tin library does not implement everything one might wish for. A few standard tables are not supported yet, for example, and it would be nice for glyph removal to have some smarts about what other tables need to be updated. (The augmentation case is handled well already.) Still, the body of code is substantial and useful, and we welcome participation to flesh out the library to meet the broadest needs. We would be thrilled to see more implementations of SING, for example. The availability of Tin should substantially lower barriers.
Daniel “daan” Strebe
Senior Computer Scientist
Adobe Systems Incorporated