text-modules
Version:
a list of text/font modules
105 lines (70 loc) • 4.74 kB
Markdown
# text-modules
A collection of modules for processing, manipulating, and rendering text and fonts in Node and the browser. Please open an issue or submit a PR for suggestions/improvements.
### contents
- [Articles](#articles)
- [Font Processing](#font-processing)
- [Bitmap Text](#bitmap-text)
- [Vector Text](#vector-text)
# <a id="articles" href="#articles">#</a> Articles
- [Material Design on the GPU](http://mattdesl.svbtle.com/material-design-on-the-gpu)
- [Drawing Text with Signed Distance Fields in MapboxGL](https://www.mapbox.com/blog/text-signed-distance-fields/)
- [Improved Alpha-Test Magnification for Vector Textures](https://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf)
# <a id="font-processing" href="#font-processing">#</a> Font Processing
- [opentype.js](https://www.npmjs.com/package/opentype.js)
- [freetype2](https://www.npmjs.com/package/freetype2)
- [node-fontnik](https://github.com/mapbox/node-fontnik)
# <a id="bitmap-text" href="#bitmap-text">#</a> Bitmap Text
### generation tools
- [BMFont](http://www.angelcode.com/products/bmfont/) (Windows only)
- [Hiero](https://github.com/libgdx/libgdx/wiki/Hiero)
- [GlyphDesigner](https://71squared.com/glyphdesigner)
- [Littera](http://kvazars.com/littera/)
- [gdx-fontpack](https://github.com/mattdesl/gdx-fontpack)
- [bmGlyph](http://www.bmglyph.com/)
### command-line tools
- [image-sdf](https://www.npmjs.com/package/image-sdf) get an image's Signed Distance Field
- [convert-bmfont](https://www.npmjs.com/package/convert-bmfont) convert BMFont from one format to another
### parsing
Parses BMFont file formats to a [standardized JSON](https://github.com/Jam3/load-bmfont/blob/master/json-spec.md).
- [parse-bmfont-xml](https://www.npmjs.com/package/parse-bmfont-xml)
- [parse-bmfont-ascii](https://www.npmjs.com/package/parse-bmfont-ascii)
- [parse-bmfont-binary](https://www.npmjs.com/package/parse-bmfont-binary)
- [unpack-bmfonts](https://www.npmjs.com/package/unpack-bmfonts) unpacks a binary of multiple BMFonts
### writing
Writes to a specific format.
- [write-bmfont-binary](https://www.npmjs.com/package/write-bmfont-binary)
- [pack-bmfonts](https://www.npmjs.com/package/pack-bmfonts) packs multiple BMFonts into a single binary file
### loading
- [load-bmfont](https://www.npmjs.com/package/load-bmfont) loads various BMFont file formats in Node/Browser
### rendering
- [word-wrapper](https://www.npmjs.com/package/word-wrapper) wraps words based on arbitrary 2D glyphs
- [layout-bmfont-text](https://www.npmjs.com/package/layout-bmfont-text) word-wraps and lays out text glyphs
- [three-bmfont-text](https://www.npmjs.com/package/three-bmfont-text) renders BMFont files in ThreeJS
- [gl-sprite-text](https://www.npmjs.com/package/gl-sprite-text) renders BMFont files in stackgl
- [font-atlas](https://github.com/hughsk/font-atlas) populate a Canvas with bitmap font glyphs
### testing
- [bmfont-lato](https://www.npmjs.com/package/bmfont-lato) Lato packed as a BMFont for testing
### misc
- [sdf-bitmap-glyphs](https://www.npmjs.com/package/sdf-bitmap-glyphs)
- [ndarray-bin-pack](https://www.npmjs.com/package/ndarray-bin-pack)
- [distance-transform](https://www.npmjs.com/package/distance-transform)
# <a id="vector-text" href="#vector-text">#</a> Vector Text
### generation
- [vectorize-text](https://www.npmjs.com/package/vectorize-text) render a string to a vectorized cell complex
### triangulation
- [cdt2d](https://www.npmjs.com/package/cdt2d) numerically robust delaunay triangulation
- [earcut](https://www.npmjs.com/package/earcut) small and fast triangulation module
- [triangulate-polyline](https://www.npmjs.com/package/triangulate-polyline) triangulate using poly2tri
- [triangulate-contours](https://www.npmjs.com/package/triangulate-polyline) triangulate using Tess2
### curves
- [cubic-hermite-spline](https://www.npmjs.com/package/cubic-hermite-spline)
- [b-spline](https://www.npmjs.com/package/b-spline)
- [bezier-curve](https://www.npmjs.com/package/bezier-curve)
- [adaptive-bezier-curve](https://www.npmjs.com/package/adaptive-bezier-curve)
- [adaptive-quadratic-curve](https://www.npmjs.com/package/adaptive-quadratic-curve)
- [cat-rom-spline](https://www.npmjs.com/package/cat-rom-spline)
- [bezier-easing](https://www.npmjs.com/package/bezier-easing)
### paths
- [simplify-path](https://www.npmjs.com/package/simplify-path) - simplify using radial distance and Douglas-Peucker
- [chaikin-smooth](https://www.npmjs.com/package/chaikin-smooth) - Chaikin's smoothing algorithm for a polyline
- [robust-orientation](https://www.npmjs.com/package/robust-orientation) and [is-clockwise](https://www.npmjs.com/package/is-clockwise) for polygon orientation