Crate jpegxl_rs[−][src]
Overview
A safe JPEGXL wrapper over jpeg-xl
library. Check out the original library
and the bindings.
Usage
Decoding
let mut decoder: JXLDecoder<u8> = decoder_builder().build()?; // Use another pixel data type let mut decoder: JXLDecoder<f32> = decoder_builder().build()?; // Customize pixel format let mut decoder: JXLDecoder<u8> = decoder_builder() .num_channels(3) .endian(Endianness::Big) .align(8) .build()?; // Set custom parallel runner and memory manager use jpegxl_rs::{parallel::ThreadsRunner, memory::MallocManager}; let manager = Box::new(MallocManager::default()); let runner = Box::new(ThreadsRunner::default()); let mut decoder: JXLDecoder<u8> = decoder_builder() .memory_manager(manager) .parallel_runner(runner) .build()?;
Encoding
use image::io::Reader as ImageReader; let sample = ImageReader::open("test/sample.png")?.decode()?.to_rgba16(); let mut encoder = encoder_builder().build()?; let buffer = encoder.encode(&sample, sample.width() as _, sample.height() as _)?;
Set encoder options
let mut encoder = encoder_builder() .lossless(true) .speed(EncoderSpeed::Falcon) .build()?; // You can change the settings after initialization encoder.set_lossless(false); encoder.set_quality(3.0);
Modules
image |
|
memory | Memory manager interface |
parallel | Parallel runner interface |
Structs
JXLDecoder | JPEG XL Decoder |
JXLDecoderBuilder | Builder for |
JXLEncoder | JPEG XL Encoder |
JXLEncoderBuilder | Builder for |
Enums
DecodeError | Errors derived from |
EncodeError | Errors derived from |
EncoderSpeed | Encoding speed, default at Squirrel(7) |
Endianness | Endinness |
Traits
PixelType | Pixel data type. Currently u8, u16, u32 and f32 are supported. |
Functions
decoder_builder | Return a |
encoder_builder | Return a |
Type Definitions
BasicInfo | Basic Information |