#[derive(Debug, Clone, Copy)]
pub enum CachePolicy {
NetworkFirst,
CacheFirst,
NoCache,
}
#[derive(Debug, Clone, Copy)]
pub enum ImageFit {
Fill,
Contain,
Cover,
ScaleDown,
None,
}
#[derive(Debug, Clone)]
pub struct ImageHandle {
pub width: u32,
pub height: u32,
pub pixels: Vec<u8>,
}
impl ImageHandle {
pub fn from_png_bytes(bytes: &[u8]) -> Option<Self> {
let pixmap = tiny_skia::Pixmap::decode_png(bytes).ok()?;
Some(Self {
width: pixmap.width(),
height: pixmap.height(),
pixels: pixmap.data().to_vec(),
})
}
}