Expand description
initials crate helps to generate customizable avatars with the initial characters from the names.
§Usage
- Draw the avatar by using
initials_revamped::AvatarBuilder
use initials_revamped::AvatarBuilder;
let image = AvatarBuilder::new("Anakin Skywalker")
.draw();
This will import dynamic RGBA image.
- If you wish to save the image:
use initials_revamped::AvatarBuilder;
let image = AvatarBuilder::new("Anakin Skywalker")
.draw();
image.save("avatar.jpg").unwrap();Or, you may use the resulting buffer to store the image data in a variable
use image::ImageOutputFormat;
use initials_revamped::AvatarBuilder;
use std::io::Cursor;
let image = AvatarBuilder::new("Anakin Skywalker")
.draw();
let mut raw_bytes: Vec<u8> = Vec::new();
image.write_to(&mut Cursor::new(&mut raw_bytes), ImageOutputFormat::Png)?;§Customization
initials_revamped allows to fully customize the attributes of the image.
§Default Attributes
- font: Roboto Regular
- 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_data(Vec<u8>) | Font binary data |
| 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 |
| with_blur(f32) | Applied Gaussian Filter |
§Example
use initials_revamped::{AvatarBuilder, AvatarResult};
fn avatar() -> AvatarResult {
let custom_font = include_bytes!("fonts/ComicSans.ttf").to_vec();
AvatarBuilder::new("Anaking Skywalker")
.with_font_color("#000000")?
.with_font_data(custom_font)?
.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, white background and Comic Sans as its font.
§Randomization
- By default,
background colorandfont colorwill be generated by considering the contrast ratio.
use initials_revamped::{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;