A Rust crate focused on generic image processing for a wide range of image formats and data types.
- Supported image data types:
u8
,i8
,u16
,i16
,u32
,i32
,u64
,i64
,f16
,f32
,f64
- Supported color types:
gray
,rgb
,rgba
,hsv
,cmyk
,xyz
- Read and write images of any supported type/color
- Easy to add new colors
- Generic image processing across data types using
Pixel
- Composable operations using
Filter
(with async support)
OpenImageIO is used to read/write images and supports:
TIFF
JPEG
/JFIF
OpenEXR
PNG
HDR
/RGBE
ICO
BMP
Targa
JPEG-2000
RMan Zfile
FITS
DDS
Softimage PIC
PNM
DPX
Cineon
IFF
Field3D
Ptex
Photoshop PSD
Wavefront RLA
SGI
WebP
GIF
- A variety of RAW digital camera formats
ImageMagick
can also be used in place of OpenImageIO.
This is not a pure Rust crate, if that's important to you then image is probably a better fit.
oiio
- Enables I/O using OpenImageIO (default: enabled)
magick
- Enables I/O using ImageMagick (default: disabled)
- Incompatible with the
oiio
feature
parallel
:- Enables parallel image iterators (default: enabled)
mmap
:- Enabled memory-mapped image data (default: enabled)
text
:- Enables loading fonts and drawing text on images (default: enabled)
window
:- Enables ability to draw images to a graphical window (default: disabled)
serialize
:- Enables serde support for several data structures (default: disabled)
glfw-sys
:- Builds
glfw
withglfw-sys
(default: disabled)
- Builds
libOpenImageIO
(optional)oiio
feature- Version >= 2.0
- Debian-based distros:
apt install libopenimageio-dev
- macOS:
brew install openimageio
ImageMagick
(optional)- Only required if
oiio
is not being used - Debian-based distros:
apt install imagemagick
- macOS:
brew install imagemagick
- Only required if
libGLFW3
(optional)window
feature- Debian-based distros:
apt install libglfw3-dev
- macOS:
brew install glfw3