use image::{
Rgba,
ImageBuffer
};
//
// Interface aliases
//
pub type RegionsMapImageBuffer = ImageBuffer<Rgba<u8>, Vec<u8>>;
//
// Interface
//
pub fn encode_index_as_rgba(index: u32) -> [u8; 4] {
[
((index & (0xFF << 0)) >> 0) as u8,
((index & (0xFF << 8)) >> 8) as u8,
((index & (0xFF << 16)) >> 16) as u8,
((index & (0xFF << 24)) >> 24) as u8
]
}
pub fn decode_index_from_rgb(rgb: &[u8]) -> u32 {
assert_eq!(rgb.len(), 3);
(rgb[0] as u32) << 0
| (rgb[1] as u32) << 8
| (rgb[2] as u32) << 16
}