Crate ab_glyph[][src]

Expand description

API for loading, scaling, positioning and rasterizing OpenType font glyphs.

Example

use ab_glyph::{FontRef, Font, Glyph, point};

let font = FontRef::try_from_slice(include_bytes!("../../dev/fonts/Exo2-Light.otf"))?;

// Get a glyph for 'q' with a scale & position.
let q_glyph: Glyph = font.glyph_id('q').with_scale_and_position(24.0, point(100.0, 0.0));

// Draw it.
if let Some(q) = font.outline_glyph(q_glyph) {
    q.draw(|x, y, c| { /* draw pixel `(x, y)` with coverage: `c` */ });
}

Structs

CodepointIdIter
FontArc

Font implementor that wraps another concrete Font + 'static type storing in an Arc.

FontRef

Font data handle stored as a &[u8] + parsed data. See Font for more methods.

FontVec

Font data handle stored in a Vec<u8> + parsed data. See Font for more methods.

Glyph

A glyph with pixel scale & position.

GlyphId

Glyph id.

GlyphImage

A pre-rendered image of a glyph, usually used for emojis or other glyphs that can’t be represented only using an outline.

InvalidFont

Invalid font data error.

Outline

A “raw” collection of outline curves for a glyph, unscaled & unpositioned.

OutlinedGlyph

A glyph that has been outlined at a scale & position.

PxScale

Pixel scale.

PxScaleFactor

2D scale factors for use with unscaled metrics.

PxScaleFont

A Font and an associated pixel scale.

Rect

A rectangle, with top-left corner at min, and bottom-right corner at max.

Enums

GlyphImageFormat

Valid formats for a GlyphImage.

OutlineCurve

Glyph outline primitives.

Traits

Font

Functionality required from font data.

ScaleFont

A Font with an associated pixel scale. This can be used to provide pixel scale values for glyph advances, heights etc.

Functions

point

Point constructor.

Type Definitions

Point

An (x, y) coordinate. Point { x: f32, y: f32 }