Expand description
initials crate helps to generate customizable avatars with the initial characters from the names.
§Usage
- Extern
initialscrate on your project.
extern crate initials;
- Draw the avatar by using
initials::AvatarBuilder
use initials::AvatarBuilder;
let image = AvatarBuilder::new("Anakin Skywalker")
.draw();
This will import dynamic RGBA image.
- If you wish to save the image:
use initials::AvatarBuilder;
let image = AvatarBuilder::new("Anakin Skywalker")
.draw();
image.save("avatar.jpg").unwrap();Or, you may manipulate DynamicImage according to your needs after building.(Docs)
§Customization
initials allows to fully customize the attributes of the image.
§Default Attributes
- font: Hirgino Sans
- font_scale: 150.0
- length: 2
- width: 300
- height: 300
- contrast_ratio: 4.5
- font_color: randomly generated
- background_color: randomly generated
§Manipulation
| method | description |
|---|---|
| with_font(str) | Font file path(.ttf) |
| with_font_color(str) | Font hex color code |
| with_font_scale(f32) | Uniform scale of the text |
| with_background_color(str) | Background hex color code |
| with_length(usize) | Font length |
| with_height(u32) | Image height |
| with_width(u32) | Image width |
| with_contrast_ratio(u32) | Contrast ratio for the randomly generated colors |
§Example
use initials::{AvatarBuilder, AvatarResult};
fn avatar() -> AvatarResult {
AvatarBuilder::new("Anaking Skywalker")
.with_font_color("#000000")?
.with_background_color("#FAFAFA")?
.with_length(1)
}
fn main() {
let avatar = avatar().unwrap();
let image = avatar.draw();
}
- This will export an initials avatar
Awith black font and white background.
§Randomization
- By default,
background colorandfont colorwill be generated by considering the contrast ratio.
use initials::{AvatarBuilder, AvatarResult};
fn avatar_with_random_font() -> AvatarResult {
AvatarBuilder::new("Lucky Seven")
.with_background_color("#FAFAFA")
}
fn avatar_with_random_background() -> AvatarResult {
AvatarBuilder::new("Lucky Seven")
.with_font_color("#000000")
}
fn main() {
let img1 = avatar_with_random_background().unwrap().draw();
let img2 = avatar_with_random_font().unwrap().draw();
}
- Means that you may fully customize the colors or unsetted colors will be automatically generated by providing clear and readable avatars according to the contrast ratio.
Re-exports§
pub use avatar::AvatarBuilder;pub use avatar::AvatarResult;pub use error::Error;