8 releases

0.2.3 Dec 9, 2022
0.2.2 Dec 9, 2022
0.1.3 Dec 5, 2022

#782 in Images

Custom license

25KB
564 lines

RoboHash

Rust implementation of RoboHash by e1ven

Install

robohash = "0.2.3"

Example Implementation

use std::fmt::Error;
use robohash::RoboHashBuilder;

fn main() -> Result<(), Error> {
    let text = "test";
    let robo = RoboHashBuilder::new(text).build();
    let robo_hash = robo.assemble_base64()?;
    println!("{robo_hash:#?}");
    Ok(())
}

Define Size

let width = 512;
let height = 512;
let robo = RoboHashBuilder::new("test")
.with_size(width, height)
.build();

Define Colour

let robo = RoboHashBuilder::new("test")
.with_colour("green")
.build();

Define Set

let robo = RoboHashBuilder::new("test")
.with_set("set3")
.build();

Change Sets Directory

let robo = RoboHashBuilder::new("test")
.with_set_location("./sets_location")
.build();

Define Background

let robo = RoboHashBuilder::new("test")
.with_background_set("bg1")
.build();

Change Background Directory

let robo = RoboHashBuilder::new("test")
.with_background_location("./backgrounds")
.build();

Full Example

use std::fmt::Error;
use robohash::RoboHashBuilder;

fn main() -> Result<(), Error> {
    let text = "test";
    let robo = RoboHashBuilder::new(text)
        .with_set("set1")
        .with_colour("green")
        .with_set_location("./sets-root")
        .with_background_set("bg1")
        .with_background_location("./backgrounds")
        .with_size(512, 512)
        .build();
    let robo_hash = robo.assemble_base64()?;
    println!("{robo_hash:#?}");
    Ok(())
}

Implemented

  • Generate base64 robo hash image from any of the provided sets and colours
  • Background support
  • Image size support

Todo

  • Support backgrounds
  • Support for saving images to disk
  • Support for returning raw image data
  • Support image sizing

Dependencies

~20–28MB
~510K SLoC