1use image::{imageops::FilterType, DynamicImage, ImageBuffer, Rgb};
2
3use rvimage_domain::RvResult;
4
5pub type ViewImage = ImageBuffer<Rgb<u8>, Vec<u8>>;
6pub type ResultImage = RvResult<DynamicImage>;
7
8pub type AsyncResultImage = RvResult<Option<ImageInfoPair>>;
9
10pub struct ImageInfoPair {
11 pub im: DynamicImage,
12 pub info: String,
13}
14
15#[derive(Clone, Debug, Default, PartialEq)]
16pub struct ExtraIms {
17 pub prev_ims: Vec<DynamicImage>,
18 pub next_ims: Vec<DynamicImage>,
19}
20impl ExtraIms {
21 pub fn new(mut prev_ims: Vec<DynamicImage>, mut next_ims: Vec<DynamicImage>) -> Self {
22 prev_ims = prev_ims
23 .iter()
24 .map(|im| im.resize(200, 100, FilterType::Lanczos3))
25 .collect();
26 next_ims = next_ims
27 .iter()
28 .map(|im| im.resize(200, 100, FilterType::Lanczos3))
29 .collect();
30 ExtraIms { prev_ims, next_ims }
31 }
32}
33#[derive(Clone, Debug, Default, PartialEq)]
34pub struct ExtraViews {
35 pub prev_ims: Vec<ViewImage>,
36 pub next_ims: Vec<ViewImage>,
37}