1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
pub struct HtmlImage {
    image: web_sys::HtmlImageElement,
}

impl HtmlImage {
    pub fn image(&self) -> &web_sys::HtmlImageElement {
        &self.image
    }

    pub fn new(bytes: &[u8], extension: &str) -> Self {
        let image = web_sys::HtmlImageElement::new().unwrap();
        let src = format!(
            "data:image/{};base64,{}",
            extension,
            base64::encode(&bytes.to_vec())
        );
        image.set_src(&src);
        Self { image }
    }
}