Skip to content

image-rs/image-extras

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image-extras

Support for additional image formats beyond those provided by the image crate.

Usage

Call the register function at program startup:

fn main() {
    image_extras::register();

    // Now you can use the image crate as normal
    let img = image::open("path/to/image.pcx").unwrap();
}

By default, all supported formats are enabled. For finer control, enable individual formats via Cargo features:

[dependencies]
image_extras = { version = "0.1", features = ["pcx"], default-features = false }

Supported Formats

Feature Format
ora OpenRaster [spec]
otb OTA Bitmap (Over The Air Bitmap) [spec]
pcx PCX (ZSoft Paintbrush bitmap/PiCture eXchange) [desc]
sgi SGI (Silicon Graphics Image) [spec]
wbmp Wireless Bitmap [spec]
xbm X BitMap [spec]
xpm X PixMap [spec]

By default, image-extras enables support for all included formats. This is convenient for prototyping, but for other uses you are encouraged to evaluate the individual implementations and enable only the ones that meet your quality/robustness requirements.

New Formats

We welcome PRs to add support for additional image formats.

Required criteria

  • Must be one of the raster image formats recognized by ImageMagick.
  • No patent or licensing restrictions.
  • Specification or sufficiently detailed file format description freely available online.
  • Must include multiple test images, and their source/license should be mentioned in the PR description.
  • Implementation must be entirely in Rust.

Additional nice-to-haves

  • Minimal or no dependencies on external libraries.
  • No use of unsafe code.

Version Compatibility

image crate version Compatible image-extras versions
0.25.x 0.1.x

Fuzzing

Fuzzing is not a priority for this crate and decoders may panic or worse on malformed input. Please do not open issues for crashes found by fuzzing, unless they are memory safety violations, though PRs fixing them are welcome.

This is an intentional tradeoff to balance the inclusion criteria for new formats with maintainer time and effort.

About

Decoding support for additional image formats

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages