msdf

Rust bindings for msdfgen. This crate attempts to bind msdfgen in a safe and idiomatic way. Unsafe bindings provided by msdf-sys.

Examples

Generate SDFs

```rust // Load a font from ttf data. let face: Face; let glyphindex = face.glyphindex('W').unwrap();

// Load a glyph into a shape using a ttf glyph index. let shape = face.loadshape(glyphindex).unwrap();

// Not a required step for SDF and Psuedo-SDF generation. Other coloring options exist. let coloredshape = shape.coloredges_simple(3.0);

// Using default projection. let projection = Default::default();

// Using default configuration. let sdfconfig = Default::default(); let msdfconfig = Default::default();

// Generate all types of SDF. Plain SDFs and Psuedo-SDFs do not require edge coloring. let sdf = coloredshape.generatesdf(32, 32, 10.0, &projection, &sdfconfig); let psdf = coloredshape.generatepsuedosdf(32, 32, 10.0, &projection, &sdfconfig); let msdf = coloredshape.generatemsdf(32, 32, 10.0, &projection, &msdfconfig); let mtsdf = coloredshape.generatemtsdf(32, 32, 10.0, &projection, &msdf_config);

// Do something with these SDFs. // let image: DynamicImage = DynamicImage::from(msdf.toimage()); // image.intorgba8().save("mysdf.png").unwrap(); ```

Render SDFs to images

```rust // Load MSDF from an image::Rgb32FImage. let msdf = MSDF::from_image(image, 10.0, 0.5);

// Render to a 1024x1024 image. let rendered = msdf.render(1024, 1024);

// Render to a 1024x1024 image with edge colors. let renderedcolored = msdf.rendercolored(1024, 1024);

// Do something with these images. // let image: DynamicImage = DynamicImage::from(rendered); // image.into_rgba8().save("myrenderedsdf.png").unwrap(); ```