| 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. |