Crate jpegli

Crate jpegli 

Source
Expand description

§jpegli

Rust port of jpegli - an improved JPEG encoder and decoder.

jpegli provides enhanced compression quality compared to standard JPEG through advanced quantization, optional XYB color space, and other perceptual optimizations.

§Features

  • Baseline JPEG: Standard 8-bit JPEG encoding/decoding
  • Progressive JPEG: Multi-scan progressive encoding
  • XYB Color Space: Perceptually optimized color space for better quality
  • Adaptive Quantization: Content-aware quantization for improved detail
  • 16-bit Support: High bit-depth input/output

§Example

use jpegli::{Encoder, ColorSpace, Quality};

let pixels: &[u8] = &[/* RGB data */];
let encoder = Encoder::new()
    .width(640)
    .height(480)
    .color_space(ColorSpace::Rgb)
    .quality(Quality::from_distance(1.0))
    .build()?;

let jpeg_data = encoder.encode(pixels)?;

Re-exports§

pub use error::Error;
pub use error::Result;
pub use types::ColorSpace;
pub use types::JpegMode;
pub use types::PixelFormat;
pub use types::SampleDepth;
pub use types::Subsampling;
pub use encode::Encoder;
pub use encode::EncoderConfig;
pub use decode::DecodedImage;
pub use decode::Decoder;
pub use decode::DecoderConfig;
pub use quant::Quality;
pub use quant::QuantTable;
pub use butteraugli;

Modules§

decode
JPEG decoder implementation.
encode
JPEG encoder implementation.
error
Error types for jpegli.
quant
Quantization tables and quality settings.
types
Core types for jpegli.

Macros§

skip_if_missing
Macro for skipping tests when test data is not available.