blob: 6c401192296542bdb9316adfa8b57373de2e6b5e [file] [log] [blame]
To build:
Check out a recent version of OTS, so that ots-read-only/ is alongside cpp/
Cd into cpp, and run "scons".
Then, decompress a font using ./woff2-decompress font.wof2 > font.ttf .
An example font is provided (Inconsolata-Regular.wof2). In this snapshot,
it contains no actual compression, but does apply the glyf table transform
and has the file format and structure as described in the current draft
of the "WOFF Ultra Condensed file format" doc.
That said, it is possible to get reliable estimates, and at the very least,
bounds, on the compression efficiency, with the confidence that the
compression is reversible. Running the compressor and doing a whole-file
compression with a standard entropy coder such as gzip or lzma will yield
a file size within a few dozen bytes or so of using a single entropy coded
stream in the final file format.
Another limitation of the current implementation snapshot is that it
doesn't implement continue streams. These will follow shortly.
= Building with lzma =
The lzma-enabled build is made with gyp instead of scons. Right now, the build
requires patching a clean copy of OTS. (And thanks to Bashi for the patch!)
- Download GYP from http://code.google.com/p/gyp/
- Download clean OTS sources:
% svn checkout http://ots.googlecode.com/svn/trunk/ ots-read-only
- Apply patch
% cd ots-read-only; patch -p0 < ../ots-lzma.patch
- Run gyp to generate Makefile
% cd ../cpp; gyp --depth=. -f make woff2.gyp
- Build
% make
Now run:
out/Default/woff2-decompress Inconsolata-Regular-lzma.wof2 > i.ttf
We expect the build recipes to be cleaned up before the code is ready for
production, but this should be good enough for testing.