Support for additional image formats beyond those provided by the
image crate.
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 }| Feature | Format |
|---|---|
ora |
OpenRaster [spec] |
otb |
OTA Bitmap (Over The Air Bitmap) [desc] |
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.
We welcome PRs to add support for additional image formats.
- 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.
- Minimal or no dependencies on external libraries.
- No use of unsafe code.
image crate version |
Compatible image-extras versions |
|---|---|
| 0.25.x | 0.1.x |
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.