Table of Contents

Class ExrHeaderEntry

Namespace
Egami.Formats.Exr
Assembly
Egami.dll

An attribute of an OpenEXR header, kept as stored.

public sealed record ExrHeaderEntry : IEquatable<ExrHeaderEntry>
Inheritance
ExrHeaderEntry
Implements
Inherited Members

Examples

// The first part's RGBA channels as linear light, 1.0 reference white; other layers by name.
using Raster<RgbaF32> beauty = Raster.Load<RgbaF32>("render.exr");
var details = (ExrDetails)beauty.Metadata.FormatDetails!;
IReadOnlyList<string> layers = details.Parts[details.Part].Layers;       // "diffuse", "specular"
using Raster<RgbaF32> diffuse = Raster.Load<RgbaF32>("render.exr", options: new ExrReaderOptions { Layer = "diffuse" });

// Any one channel, such as depth or an object id, as 32-bit float.
using Raster<GrayF32> depth = ExrImage.ReadChannel("aov.exr", "Z");

Constructors

ExrHeaderEntry(string, string, ReadOnlyMemory<byte>)

An attribute of an OpenEXR header, kept as stored.

public ExrHeaderEntry(string Name, string Type, ReadOnlyMemory<byte> Value)

Parameters

Name string

The attribute's name, such as "owner".

Type string

The attribute's type name, such as "string" or "v2f".

Value ReadOnlyMemory<byte>

The value's bytes, little-endian as in the file.

Examples

// The first part's RGBA channels as linear light, 1.0 reference white; other layers by name.
using Raster<RgbaF32> beauty = Raster.Load<RgbaF32>("render.exr");
var details = (ExrDetails)beauty.Metadata.FormatDetails!;
IReadOnlyList<string> layers = details.Parts[details.Part].Layers;       // "diffuse", "specular"
using Raster<RgbaF32> diffuse = Raster.Load<RgbaF32>("render.exr", options: new ExrReaderOptions { Layer = "diffuse" });

// Any one channel, such as depth or an object id, as 32-bit float.
using Raster<GrayF32> depth = ExrImage.ReadChannel("aov.exr", "Z");

Properties

Name

The attribute's name, such as "owner".

public string Name { get; init; }

Property Value

string

Type

The attribute's type name, such as "string" or "v2f".

public string Type { get; init; }

Property Value

string

Value

The value's bytes, little-endian as in the file.

public ReadOnlyMemory<byte> Value { get; init; }

Property Value

ReadOnlyMemory<byte>