45 lines
1.6 KiB
Plaintext
45 lines
1.6 KiB
Plaintext
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.
|