The library provides experimental support for HDR images using the HdrImage class (which handles Radiance HDR files) and the Bc6U format.
Encoding HDR: Use encoder.EncodeToStreamHdr passing the PixelMemory from an HdrImage.
Decoding HDR: Use decoder.DecodeHdr2D to get a Memory2D<ColorRgbFloat>, which can then be wrapped in a new HdrImage object.
// Encoding HDR
HdrImage image = HdrImage.Read("example.hdr");
BcEncoder encoder = new BcEncoder();
encoder.OutputOptions.GenerateMipMaps = true;
encoder.OutputOptions.Quality = CompressionQuality.Balanced;
encoder.OutputOptions.Format = CompressionFormat.Bc6U;
encoder.OutputOptions.FileFormat = OutputFileFormat.Ktx;
using FileStream fs = File.OpenWrite("example.ktx");
encoder.EncodeToStreamHdr(image.PixelMemory, fs);
// Decoding HDR
using FileStream fsIn = File.OpenRead("compressed_bc6.ktx");
BcDecoder decoder = new BcDecoder();
Memory2D<ColorRgbFloat> pixels = decoder.DecodeHdr2D(fsIn);
HdrImage decodedImage = new HdrImage(pixels.Span);
using FileStream outFs = File.OpenWrite("decoded.hdr");
decodedImage.Write(outFs);