Struct exr::meta::attribute::ChannelDescription
source · pub struct ChannelDescription {
pub name: Text,
pub sample_type: SampleType,
pub quantize_linearly: bool,
pub sampling: Vec2<usize>,
}
Expand description
A single channel in an layer. Does not contain the actual pixel data, but instead merely describes it.
Fields§
§name: Text
One of “R”, “G”, or “B” most of the time.
sample_type: SampleType
U32, F16 or F32.
quantize_linearly: bool
This attribute only tells lossy compression methods whether this value should be quantized exponentially or linearly.
Should be false
for red, green, or blue channels.
Should be true
for hue, chroma, saturation, or alpha channels.
sampling: Vec2<usize>
How many of the samples are skipped compared to the other channels in this layer.
Can be used for chroma subsampling for manual lossy data compression. Values other than 1 are allowed only in flat, scan-line based images. If an image is deep or tiled, x and y sampling rates for all of its channels must be 1.
Implementations§
source§impl ChannelDescription
impl ChannelDescription
sourcepub fn guess_quantization_linearity(name: &Text) -> bool
pub fn guess_quantization_linearity(name: &Text) -> bool
Choose whether to compress samples linearly or not, based on the channel name. Luminance-based channels will be compressed differently than linear data such as alpha.
sourcepub fn named(name: impl Into<Text>, sample_type: SampleType) -> Self
pub fn named(name: impl Into<Text>, sample_type: SampleType) -> Self
Create a new channel with the specified properties and a sampling rate of (1,1). Automatically chooses the linearity for compression based on the channel name.
sourcepub fn new(
name: impl Into<Text>,
sample_type: SampleType,
quantize_linearly: bool,
) -> Self
pub fn new( name: impl Into<Text>, sample_type: SampleType, quantize_linearly: bool, ) -> Self
Create a new channel with the specified properties and a sampling rate of (1,1).
sourcepub fn subsampled_pixels(&self, dimensions: Vec2<usize>) -> usize
pub fn subsampled_pixels(&self, dimensions: Vec2<usize>) -> usize
The count of pixels this channel contains, respecting subsampling.
sourcepub fn subsampled_resolution(&self, dimensions: Vec2<usize>) -> Vec2<usize>
pub fn subsampled_resolution(&self, dimensions: Vec2<usize>) -> Vec2<usize>
The resolution pf this channel, respecting subsampling.
sourcepub fn write<W: Write>(&self, write: &mut W) -> UnitResult
pub fn write<W: Write>(&self, write: &mut W) -> UnitResult
Without validation, write this instance to the byte stream.
sourcepub fn validate(
&self,
allow_sampling: bool,
data_window: IntegerBounds,
strict: bool,
) -> UnitResult
pub fn validate( &self, allow_sampling: bool, data_window: IntegerBounds, strict: bool, ) -> UnitResult
Validate this instance.
Trait Implementations§
source§impl Clone for ChannelDescription
impl Clone for ChannelDescription
source§fn clone(&self) -> ChannelDescription
fn clone(&self) -> ChannelDescription
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ChannelDescription
impl Debug for ChannelDescription
source§impl Hash for ChannelDescription
impl Hash for ChannelDescription
source§impl PartialEq for ChannelDescription
impl PartialEq for ChannelDescription
impl Eq for ChannelDescription
impl StructuralPartialEq for ChannelDescription
Auto Trait Implementations§
impl Freeze for ChannelDescription
impl RefUnwindSafe for ChannelDescription
impl Send for ChannelDescription
impl Sync for ChannelDescription
impl Unpin for ChannelDescription
impl UnwindSafe for ChannelDescription
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)