Crate initials_revamped

Crate initials_revamped 

Source
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
methoddescription
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 A with black font, white background and Comic Sans as its font.

§Randomization

  • By default, background color and font color will 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;

Modules§

avatar
Avatar module helps to generate avatars according to the initial names.
color
Color module that helps generating and operating on rgb colors
error
Error module includes the custom error types.