Expand description
Data structures that represent a complete exr image. Contains generic structs that must be nested to obtain a complete image type.
For example, an rgba image containing multiple layers
can be represented using Image<Layers<SpecificChannels<MyPixelStorage>>>
.
An image containing a single layer with arbitrary channels and no deep data
can be represented using Image<Layer<AnyChannels<FlatSamples>>>
.
These and other predefined types are included in this module as
PixelImage
: A single layer, fixed set of arbitrary channels.PixelLayersImage
: Multiple layers, fixed set of arbitrary channels.RgbaImage
: A single layer, fixed set of channels: rgb, optional a.RgbaLayersImage
: Multiple layers, fixed set of channels: rgb, optional a.FlatImage
: Multiple layers, any channels, no deep data.AnyImage
: All supported data (multiple layers, arbitrary channels, no deep data yet)
You can also use your own types inside an image, for example if you want to use a custom sample storage.
This is the high-level interface for the pixels of an image.
See exr::blocks
module for a low-level interface.
Modules§
- Crop away unwanted pixels. Includes automatic detection of bounding rectangle. Currently does not support deep data and resolution levels.
- Provides a predefined pixel storage. Currently only contains a simple flattened vector storage. Use the functions
create_pixel_vec::<YourPixelTuple>
andset_pixel_in_vec::<YourPixelTuple>
for reading a predefined pixel vector. Use the functionPixelVec::new
to create a pixel vector which can be written to a file. - Read an exr image.
- A generic wrapper which can be used to represent recursive types. Supports conversion from and to tuples of the same size.
- Compare the result of a round trip test with the original method. Supports lossy compression methods.
- Write an exr image to a file.
Structs§
- A single arbitrary channel.
Samples
can currently only beFlatSamples
orLevels<FlatSamples>
- A dynamic list of arbitrary channels.
Samples
can currently only beFlatSamples
orLevels<FlatSamples>
. - How the pixels are split up and compressed.
- Iterate over all channels of a single pixel in the image
- The complete exr image.
Layers
can be either a singleLayer
orLayers
. - A single Layer, including fancy attributes and compression settings.
Channels
can be eitherSpecificChannels
orAnyChannels
- In addition to the full resolution image, this layer also contains smaller versions, and each smaller version has further versions with varying aspect ratios.
Samples
can currently only beFlatSamples
. - A grid of pixels. The pixels are written to your custom pixel storage.
PixelStorage
can be anything, from a flatVec<f16>
toVec<Vec<AnySample>>
, as desired. In order to write this image to a file, yourPixelStorage
must implementGetPixel
. - Used to construct a
SpecificChannels
. Callwith_named_channel
as many times as desired, and then callwith_pixels
to define the colors.
Enums§
- How the image pixels are split up into separate blocks.
- A vector of non-deep values (one value per pixel per channel). Stores row after row in a single vector. The precision of all values is either
f16
,f32
oru32
. - One or multiple resolution levels of the same image.
Samples
can beFlatSamples
.
Traits§
- This check can be executed at compile time if the channel names are
&'static str
and the compiler is smart enough. - Convert this type into one of the known sample types. Also specify the preferred native type, which dictates the default sample type in the image.
Functions§
- Don’t do anything
Type Aliases§
- This image type contains all supported exr features and can represent almost any image. It currently does not support deep data yet.
- This image type contains the most common exr features and can represent almost any plain image. Does not contain resolution levels. Does not support deep data.
- A list of samples representing a single pixel. Does not heap allocate for images with 8 or fewer channels.
- A list of layers.
Channels
can beSpecificChannels
orAnyChannels
. - A list of resolution levels.
Samples
can currently only beFlatSamples
. - This image type contains a single layer containing a user-defined type of pixels.
- This image type contains multiple layers, with each layer containing a user-defined type of pixels.
- Contains information about the channels in an rgb image, in the order
(red, green, blue)
. - Contains information about the channels in an rgba image, in the order
(red, green, blue, alpha)
. The alpha channel is not required. May beNone
if the image did not contain an alpha channel. - This image type contains a single layer containing a user-defined type of rgba pixels.
- This image type contains multiple layers, with each layer containing a user-defined type of rgba pixels.