1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
3pub struct RasterLayout {
4 pub width: usize,
5 pub height: usize,
6 pub samples_per_pixel: usize,
7 pub bits_per_sample: u16,
8 pub bytes_per_sample: usize,
9 pub sample_format: u16,
10 pub planar_configuration: u16,
11 pub predictor: u16,
12}
13
14impl RasterLayout {
15 pub fn pixel_stride_bytes(&self) -> usize {
16 self.samples_per_pixel * self.bytes_per_sample
17 }
18
19 pub fn row_bytes(&self) -> usize {
20 self.width * self.pixel_stride_bytes()
21 }
22
23 pub fn sample_plane_row_bytes(&self) -> usize {
24 self.width * self.bytes_per_sample
25 }
26}