mistralrs_vision/
utils.rs
1use image::{DynamicImage, Pixel};
2
3pub(crate) fn empty_image(h: usize, w: usize) -> Vec<Vec<Vec<u8>>> {
4 vec![vec![vec![]; w]; h]
5}
6
7pub(crate) fn get_pixel_data(
8 n_channels: usize,
9 pixels: image::ImageBuffer<image::Rgba<u8>, Vec<u8>>,
10 h: usize,
11 w: usize,
12) -> Vec<Vec<Vec<u8>>> {
13 let mut pixel_data = empty_image(h, w);
14 for (x, y, pixel) in pixels.enumerate_pixels() {
15 pixel_data[y as usize][x as usize] = pixel.channels()[..n_channels].to_vec()
16 }
17 pixel_data
18}
19
20pub(crate) fn n_channels(image: &DynamicImage) -> usize {
21 image.color().channel_count() as usize
22}