pub struct ReadRequiredChannel<ReadChannels, Sample> { /* private fields */ }
Expand description
Used to read another specific channel from an image.
Contains the previous ReadChannels
objects.
Trait Implementations§
Source§impl<Inner: CheckDuplicates, Sample> CheckDuplicates for ReadRequiredChannel<Inner, Sample>
impl<Inner: CheckDuplicates, Sample> CheckDuplicates for ReadRequiredChannel<Inner, Sample>
Source§fn already_contains(&self, name: &Text) -> bool
fn already_contains(&self, name: &Text) -> bool
Check for duplicate channel names.
Source§impl<ReadChannels: Clone, Sample: Clone> Clone for ReadRequiredChannel<ReadChannels, Sample>
impl<ReadChannels: Clone, Sample: Clone> Clone for ReadRequiredChannel<ReadChannels, Sample>
Source§fn clone(&self) -> ReadRequiredChannel<ReadChannels, Sample>
fn clone(&self) -> ReadRequiredChannel<ReadChannels, Sample>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<Sample, ReadChannels> ReadSpecificChannel for ReadRequiredChannel<ReadChannels, Sample>where
ReadChannels: ReadSpecificChannel,
Sample: FromNativeSample + 'static,
impl<Sample, ReadChannels> ReadSpecificChannel for ReadRequiredChannel<ReadChannels, Sample>where
ReadChannels: ReadSpecificChannel,
Sample: FromNativeSample + 'static,
Source§type RecursivePixelReader = Recursive<<ReadChannels as ReadSpecificChannel>::RecursivePixelReader, SampleReader<Sample>>
type RecursivePixelReader = Recursive<<ReadChannels as ReadSpecificChannel>::RecursivePixelReader, SampleReader<Sample>>
A separate internal reader for the pixels. Will be of type
Recursive<_, SampleReader<_>>
,
depending on the pixels of the specific channel combination.Source§fn create_recursive_reader(
&self,
channels: &ChannelList,
) -> Result<Self::RecursivePixelReader>
fn create_recursive_reader( &self, channels: &ChannelList, ) -> Result<Self::RecursivePixelReader>
Create a separate internal reader for the pixels of the specific channel combination.
Source§fn required<Sample>(
self,
channel_name: impl Into<Text>,
) -> ReadRequiredChannel<Self, Sample>
fn required<Sample>( self, channel_name: impl Into<Text>, ) -> ReadRequiredChannel<Self, Sample>
Plan to read an additional channel from the image, with the specified name.
If the channel cannot be found in the image when the image is read, the image will not be loaded.
The generic parameter can usually be inferred from the closure in
collect_pixels
.Source§fn optional<Sample>(
self,
channel_name: impl Into<Text>,
default_sample: Sample,
) -> ReadOptionalChannel<Self, Sample>
fn optional<Sample>( self, channel_name: impl Into<Text>, default_sample: Sample, ) -> ReadOptionalChannel<Self, Sample>
Plan to read an additional channel from the image, with the specified name.
If the file does not contain this channel, the specified default sample will be returned instead.
You can check whether the channel has been loaded by
checking the presence of the optional channel description before instantiating your own image.
The generic parameter can usually be inferred from the closure in
collect_pixels
.Source§fn collect_pixels<Pixel, PixelStorage, CreatePixels, SetPixel>(
self,
create_pixels: CreatePixels,
set_pixel: SetPixel,
) -> CollectPixels<Self, Pixel, PixelStorage, CreatePixels, SetPixel>where
<Self::RecursivePixelReader as RecursivePixelReader>::RecursivePixel: IntoTuple<Pixel>,
<Self::RecursivePixelReader as RecursivePixelReader>::RecursiveChannelDescriptions: IntoNonRecursive,
CreatePixels: Fn(Vec2<usize>, &<<Self::RecursivePixelReader as RecursivePixelReader>::RecursiveChannelDescriptions as IntoNonRecursive>::NonRecursive) -> PixelStorage,
SetPixel: Fn(&mut PixelStorage, Vec2<usize>, Pixel),
fn collect_pixels<Pixel, PixelStorage, CreatePixels, SetPixel>(
self,
create_pixels: CreatePixels,
set_pixel: SetPixel,
) -> CollectPixels<Self, Pixel, PixelStorage, CreatePixels, SetPixel>where
<Self::RecursivePixelReader as RecursivePixelReader>::RecursivePixel: IntoTuple<Pixel>,
<Self::RecursivePixelReader as RecursivePixelReader>::RecursiveChannelDescriptions: IntoNonRecursive,
CreatePixels: Fn(Vec2<usize>, &<<Self::RecursivePixelReader as RecursivePixelReader>::RecursiveChannelDescriptions as IntoNonRecursive>::NonRecursive) -> PixelStorage,
SetPixel: Fn(&mut PixelStorage, Vec2<usize>, Pixel),
Using two closures, define how to store the pixels.
The first closure creates an image, and the second closure inserts a single pixel.
The type of the pixel can be defined by the second closure;
it must be a tuple containing
f16
, f32
, u32
or Sample
values.
See the examples for more information.Auto Trait Implementations§
impl<ReadChannels, Sample> Freeze for ReadRequiredChannel<ReadChannels, Sample>where
ReadChannels: Freeze,
impl<ReadChannels, Sample> RefUnwindSafe for ReadRequiredChannel<ReadChannels, Sample>where
ReadChannels: RefUnwindSafe,
Sample: RefUnwindSafe,
impl<ReadChannels, Sample> Send for ReadRequiredChannel<ReadChannels, Sample>
impl<ReadChannels, Sample> Sync for ReadRequiredChannel<ReadChannels, Sample>
impl<ReadChannels, Sample> Unpin for ReadRequiredChannel<ReadChannels, Sample>
impl<ReadChannels, Sample> UnwindSafe for ReadRequiredChannel<ReadChannels, Sample>where
ReadChannels: UnwindSafe,
Sample: UnwindSafe,
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
Mutably borrows from an owned value. Read more