mozjpeg-sys-0.3.3 has been yanked.
Visit the last successful build:
mozjpeg-sys-2.2.4-beta.1
Low-level MozJPEG bindings for Rust
See crates.io.
This crate exposes the raw libjpeg API, so libjpeg usage manual applies. You'll most likely want to wrap it in a higher-level API :)
let JPOOL_IMAGE:c_int = 1;
let mut octets: = Vecnew;
let width:u32;
let height:u32;
let txt_vec8 = nom_fichier_source.into_bytes;
let txt = new.unwrap;
let mode = new.unwrap;
let f = fopen;
let mut err:jpeg_error_mgr = zeroed;
let mut cinfo: jpeg_decompress_struct = zeroed;
let size:size_t = size_of_val;
cinfo.common.err = jpeg_std_error;
jpeg_CreateDecompress;
let f2 = f as *mut FILE;
jpeg_stdio_src;
jpeg_read_header;
width = cinfo.image_width;
height = cinfo.image_height;
cinfo.out_color_space = J_COLOR_SPACEJCS_EXT_BGRA;
jpeg_start_decompress;
let row_stride = as u32;
let nbre_octets = as usize;
octets.reserve;
octets.set_len;
let octets_ptr = octets.as_mut_ptr;
let mut octet_index:isize = 0;
let jsamparray = ;
while cinfo.output_scanline < cinfo.output_height ;
jpeg_finish_decompress;
jpeg_destroy_decompress;
fclose;
Writing:
let filename = Stringfrom;
let compression = 98;
let txt_vec8 = filename.into_bytes;
let txt = new.unwrap;
let mode = new.unwrap;
let f = fopen;
let mut err:jpeg_error_mgr = zeroed;
let mut cinfo: jpeg_compress_struct = zeroed;
let size:size_t = size_of_val;
cinfo.common.err = jpeg_std_error;
jpeg_CreateCompress;
let f2 = f as *mut FILE;
jpeg_stdio_dest;
cinfo.image_width = width;
cinfo.image_height = height;
cinfo.input_components = 4;
cinfo.in_color_space = J_COLOR_SPACEJCS_EXT_BGRA;
jpeg_set_defaults;
let row_stride = as u32;
cinfo.dct_method = J_DCT_METHODJDCT_ISLOW;
jpeg_set_quality;
let octets_ptr = octets.as_mut_ptr;
let mut octet_index:isize = 0;
jpeg_start_compress;
let jsamparray_mut = ;
let jsamparray = jsamparray_mut as JSAMPARRAY;
while cinfo.next_scanline < cinfo.image_height
jpeg_finish_compress;
jpeg_destroy_compress;
fclose;