docs.rs failed to build mozjpeg-sys-0.5.5
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
mozjpeg-sys-2.1.0
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 :)
Many fields in structs are marked as private by default, but if you need to access them, make a pull request marking them pub
.
Requirements
- nasm
- build-essentials (gcc, etc.)
Usage
In Rust add "mozjpeg-sys" as a dependency and use with extern crate mozjpeg_sys
.
For non-Rust projects you can build the library using cargo build --release
. It creates target/release/libmozjpeg_sys.a
and target/release/libmozjpeg_sys.{dll,so,dylib}
, which can be linked with C and other languages.
Example
let mut err: jpeg_error_mgr = zeroed;
let mut cinfo: jpeg_decompress_struct = zeroed;
cinfo.common.err = jpeg_std_error;
jpeg_create_decompress;
let file_name = new.unwrap;
let mode = new.unwrap;
let fh = fopen;
jpeg_stdio_src;
jpeg_read_header;
// Available only after `jpeg_read_header()`
let width = cinfo.image_width;
let height = cinfo.image_height;
// Output settings be set before calling `jpeg_start_decompress()`
cinfo.out_color_space = J_COLOR_SPACEJCS_RGB;
jpeg_start_decompress;
let row_stride = cinfo.image_width as usize * cinfo.output_components as usize;
let buffer_size = row_stride * cinfo.image_height as usize;
let mut buffer = vec!;
while cinfo.output_scanline < cinfo.output_height
jpeg_finish_decompress;
jpeg_destroy_decompress;
fclose;
Writing:
let quality = 98;
let file_name = new.unwrap;
let mode = new.unwrap;
let fh = fopen;
let mut err = zeroed;
let mut cinfo: jpeg_compress_struct = zeroed;
cinfo.common.err = jpeg_std_error;
jpeg_create_compress;
jpeg_stdio_dest;
cinfo.image_width = width;
cinfo.image_height = height;
cinfo.in_color_space = J_COLOR_SPACEJCS_RGB;
cinfo.input_components = 3;
jpeg_set_defaults;
let row_stride = cinfo.image_width as usize * cinfo.input_components as usize;
cinfo.dct_method = J_DCT_METHODJDCT_ISLOW;
jpeg_set_quality;
jpeg_start_compress;
while cinfo.next_scanline < cinfo.image_height
jpeg_finish_compress;
jpeg_destroy_compress;
fclose;