Skip to main content

tiff_core/
layout.rs

1/// Raster layout information normalized from TIFF tags.
2#[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}