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

image crate integration

memory

Memory manager interface

parallel

Parallel runner interface

Structs

JXLDecoder

JPEG XL Decoder

JXLDecoderBuilder

Builder for JXLDecoder

JXLEncoder

JPEG XL Encoder

JXLEncoderBuilder

Builder for JXLEncoder

Enums

DecodeError

Errors derived from JxlDecoderStatus

EncodeError

Errors derived from JxlEncoderStatus

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 JXLDecoderBuilder with default settings

encoder_builder

Return a [JXLEncoderBuilder] with default settings

Type Definitions

BasicInfo

Basic Information