Expand description
§schrift-rs
libschrift is a lightweight TrueType rendering library implemented in C, and this crate wraps the libschrift library into safe Rust. The result is a font loading and glyph rendering crate with no runtime dependencies other than the C and Rust standard libraries.
The following example code renders a single glyph into a PGM file:
use schrift_rs::*;
let font = Font::load_from_file(
concat!(
env!("CARGO_MANIFEST_DIR"),
"/libschrift/resources/FiraGO-Regular.ttf")).unwrap();
let sch = Schrift::build(font)
.with_scale(10.0)
.flag_y_downwards()
.build();
let aglyph = sch
.glyph_lookup('a')
.expect("couldn't look up lowercase 'a'");
let mut pxdata = vec![0u8; 256];
sch.render(aglyph, pxdata.as_mut_slice(), 16, 16).expect("couldn't render lowercase 'a'");
let mut pgm = String::new();
pgm.push_str("P2\n16 16\n255\n");
for y in 0..16 {
for x in 0..16 {
pgm.push_str(format!(" {}", pxdata[x + (y * 16)]).as_str());
}
pgm.push_str("\n");
}
std::fs::write(concat!(env!("OUT_DIR"), "render_test.pgm"), pgm).unwrap();
Structs§
- Cached
Schrift - Caching wrapper around
Schrift
that treats format errors as panics. - Font
- Size-independent font information, loaded from a single TTF file.
- Glyph
- TrueType glyph index type.
- Glyph
Metrics - Glyph metrics from a
Schrift
instance. - Kerning
- Glyph-pair kerning information.
- Line
Metrics - Line metrics for a
Schrift
instance. - Schrift
- Size-dependent font functionality.
- Schrift
Builder - Builder pattern for a
Schrift
instance.
Enums§
- Error
- Error type for schrift-rs operations.
Functions§
- version_
info - Retrieve the libschrift version information string.