[][src]Crate jpegxl_rs

Overview

A safe JPEGXL wrapper over jpeg-xl library. Check out the original library and the bindings.

Usage

Decoding

use jpegxl_rs::decoder::*;
let sample = std::fs::read("test/sample.jxl")?;
let mut decoder: JXLDecoder<u8> = decoder_builder().build();
let (info, buffer) = decoder.decode(&sample)?;

Set output pixel paramaters

// Pixel type is set by type parameter
use jpegxl_rs::{decoder::*, Endianness};
let mut decoder: JXLDecoder<u16> = decoder_builder()
                                    .num_channels(3)
                                    .endian(Endianness::Big)
                                    .align(8)
                                    .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: Vec<u8> = encoder.encode(
                        &sample,
                        sample.width() as u64,
                        sample.height() as u64
                      )?;

image crate integration

The integration is enabled by default. If you don't need it, disable with-image feature.

Re-exports

pub use decoder::*;
pub use encoder::*;

Modules

decoder

Decoder of JPEG XL format

encoder

Encoder of JPEG XL format

error

Decoder and encoder errors

image

image crate integration

memory

Memory manager interface

parallel

Parallel runner interface

Enums

Endianness

Endinness

Traits

PixelType

Pixel data type. Currently u8, u16, u32 and f32 are supported.