Crate text_to_png
source · [−]Expand description
Text To Png
This crate provides a really simple interface for rendering basic text to a png image.
Features
- 100% Rust! We use usvg for path vectoring, resvg for rasterizing, and tiny-skia for png conversion
- Built-in, monospace font courtesy of Ryoichi Tsunekawa
- Flexible color specification,
"Aquamarine"
,"#4506AE"
,"EEE"
,0
- Text baseline height is provided for alignment consistency
- Accepts true-type font files or true-type font collection files
Example
Default Font
use text_to_png::TextRenderer;
let renderer = TextRenderer::default();
let text_png = renderer.render_text_to_png_data(
"Rénder this, brö",
64,
"Dark Turquoise");
Writing the &[u8]
data returned in text_png.data
to a text.png
yields:
Custom Font
use text_to_png::TextRenderer;
let renderer = TextRenderer::try_new_with_ttf_font_data(include_bytes!("../tests/resources/Because I am Happy Regular.ttf"))
.expect("Example font is definitely loadable");
let text_png = renderer.render_text_to_png_data(
"Custom Fonts are Cool!",
52,
0x439EC2);
Writing the &[u8]
data returned in text_png.data
to a text.png
yields:
CLI
See the CLI Readme
Structs
Representation of a RGB color
Representation of the size of png image
Result of rendering text to a png image. This contains the png byte as well as the the image metadata for pixel size and baseline location
This is the mechanism used to perform the actual rendering. This struct contains the options that describe how text will be converted into vector paths. Currently we only support the default, embedded font, and we optimize for legibility
Enums
Enumeration of ways that the size of rendered text can be specified.
Error type returned on unsuccessful rendering calls