initials-revamped 0.1.2

initials avatar for rust
Documentation
//! `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&lt;u8&gt;) | 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.

#[macro_use]
extern crate failure;

extern crate image;
extern crate rand;
extern crate rusttype;

pub mod avatar;
pub mod color;
pub mod error;

pub use avatar::AvatarBuilder;
pub use avatar::AvatarResult;
pub use error::Error;