fontsdf
Signed Distance Field (SDF) textures can be used to render text or other vector art more flexibly[1], with higher quality while using less video memory (for the texture).
This no_std library renders SDF:s directly and not by downscaling a higher resolution rasters.
[1] For example:
- It is possible to use single a 64px glyph to render both 14px and 200px glyphs.
- It is easy to add glow, outlines and such.
Comparisons:
NOTE: Use fontdue for simple glyphs instead. It is a lot faster.
| Task | SDF | regular |
|---|---|---|
| High resolution glyphs | ✓ | ✓ |
| Medium resolution glyphs | ✓ | ✓ |
| Low resolution glyphs | ✓ | |
| Stretched or squished glyphs | ✓ | |
| Shadows borders and effects | ✓ | |
| GUI:s | ✓ | |
| 3D game worlds | ✓ |
- :white_check_mark: means it is good at
Example usage with image:
let font = from_bytes.unwrap;
let = font.rasterize;
from_raw
.unwrap
.save
.unwrap;
Example output:
Normal
SDF
Example results:
Normal
- 128x156
- 80px font size
SDF
- 128x128
- 48px (+radius) font size (32px input size should be enough for any output size)
- 'free' shadows, borders, antialias, glow, etc.