pix
Pixel / raster image library
1.0.1
11M downloads/mo
#3037 most downloaded on crates.io
DougLau/pix
What this package is like to depend on
Last release 2 months ago
18 Jun 2026
Release timing varies
gaps range from 2 weeks to 2.0 years
Nearly every release is documented
notes for 21 of 22 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
22 releases · first in 2019
3 releases in the last 12 months
see the full history below
Release timeline
22 releases · Apr 2019 to Jun 2026
2020
2021
2022
2023
2024
2025
2026
Releases
latest 22-
1.0.118 Jun 2026 -
1.0.022 May 2026 -
0.15.015 Apr 2026Release notes
Open source →Changed
- Replace
Pix1,Pix2, etc. withPix, using const-generics Palette::make_indexednow returns Option (None on palette full)
- Replace
-
0.14.015 Mar 2025 -
0.13.424 Oct 2024Nothing published for this version
-
0.13.301 Sep 2023 -
0.13.201 Jun 2022 -
0.13.104 Jun 2020Release notes
Open source →Added
Region::left()and::top()
Changed
- Made
Region::width(),::height(),::right()and::bottom()pub
-
0.13.005 May 2020Release notes
Open source →Changed
Raster::rows()/rows_mut()sliced to span of region- Renamed
Pixel::composite_channels_mattetocomposite_channels_alpha - Matte type aliases premultiplied instead of straight
-
0.12.024 Apr 2020Release notes
Open source →Added
- Raster::copy_color and copy_raster
- CMY color model
Changed
- Moved color models to their own sub-modules
- composite methods only available for premultiplied Rasters
-
0.11.011 Apr 2020Release notes
Open source →Added
- Raster::pixel_mut(x, y); replaces set_pixel
- Raster::rows and ::rows_mut
- Raster::with_ constructors
- ops module with Porter-Duff compositing
- Raster::composite_color
- Raster::composite_raster
Changed
- Renamed channel module to chan
- Moved alpha/gamma stuff to chan module
- Renamed model module to clr
- Moved color model impls to clr module
- GrayModel to Gray
- HslModel to Hsl
- HsvModel to Hsv
- HwbModel to Hwb
- MaskModel to Matte
- RgbModel to Rgb
- YCbCrModel to YCbCr
- Moved
alphaassociated functions out of ColorModel trait
Removed
- Raster::set_pixel(x, y, p)
Pix1::From<u8>andPix1::From<i32>- Raster::set_region
- RasterBuilder (use Raster::with_ methods instead)
-
0.10.026 Mar 2020Release notes
Open source →Added
- ColorModel trait
- HsvModel, HslModel, HwbModel and YCbCrModel
- Pix1, Pix2, Pix3, Pix4 structs
Changed
- Use Any/TypeId instead of GammaModeID
- Renamed GammaMode to gamma::Mode + sealed trait
- Renamed LinearGamma to gamma::Linear
- Renamed SrgbGamma to gamma::Srgb
- Use Any/TypeId instead of AlphaModeID
- Renamed AlphaMode to alpha::Mode + sealed trait
- Renamed StraightAlpha to alpha::Straight
- Renamed PremultipliedAlpha to alpha::Premultiplied
- Renamed Format trait to Pixel
- Renamed all GrayAlpha types to Graya
- Types with alpha can just use
newto construct - Gray conversion now uses perceptual luminance
Removed
- alpha::Alpha and Translucent/Opaque
- Gray/Rgb with_alpha constructors (use
newinstead)
-
0.9.008 Mar 2020Release notes
Open source →Changed
- Simplified type aliases to shorter names
- AssociatedAlpha renamed to PremultipliedAlpha
- SeparatedAlpha renamed to StraightAlpha
- Alpha items no longer re-exported in crate root
- Gamma items no longer re-exported in crate root
-
0.8.020 Feb 2020Release notes
Open source →Added
- AlphaMode trait (and implementors: AssociatedAlpha, SeparatedAlpha)
- AlphaModeID can now be UnknownAlpha (for masks)
- GammaMode trait (and implementors: LinearGamma, SrgbGamma)
- GammaModeID can now be UnknownGamma (for masks)
- Implemented Add for Ch8, Ch16, and Ch32
- Type aliases for new generics
- Format::convert method
Changed
- Gamma and Alpha are now Generics on Gray, Rgb instead of attributes on Raster
- Rename AlphaMode to AlphaModeID
- Format now depends on traits AlphaMode + GammaMode
- Rename GammaMode to GammaModeID
-
0.7.001 Jan 2020Release notes
Open source →Added
- Implemented From u8, u16, f32 for Translucent
- Implemented From for Translucent <=> Opaque
Changed
- Alpha, Channel now depend on traits Debug + Mul
-
0.6.128 Jul 2019 -
0.6.025 May 2019Release notes
Open source →Added
- Implemented From<i32> for Rgb
- RasterBuilder::with_color
- Palette struct
- Format::difference / within_threshold methods
Changed
- RasterBuilder methods reworked to be more consistent
Removed
- Raster::to_raster (use RasterBuilder.with_raster instead)
-
0.5.018 May 2019Release notes
Open source →Added
- RasterBuilder
- Raster::region, region_iter, set_region, to_raster methods
- RasterIter struct
- Gray, Mask, Rgb now implement Iterator (for use with set_region)
- AlphaMode, GammaMode, PixModes
Changed
- Fixed bugs in channel conversions
- Region::intersection, right, bottom reworked
Removed
- Raster::set_rect (use set_region instead)
- Srgb struct and types (use GammaMode instead)
-
0.4.011 May 2019Release notes
Open source →Added
- Ch32 channel
Changed
- Reworked alpha channel handling
- Cu8 / Cu16 renamed to Ch8 / Ch16
- Renamed PixFmt to Format
Removed
- Blending/lerp moved to pixops crate
-
0.3.006 May 2019Release notes
Open source →Added
- Channel trait with Cu8 and Cu16 implementations
- Gamma encoding/decoding module
- Alpha, Gray, Rgb, Rgba pixel formats
- New Srgb pixel format
- Raster::with_pixels and Raster::into to transfer pixel ownership
Removed
- Alpha8, Gray8, Rgb8, Rgba8 pixel formats
- RasterB -- use Raster::with_pixels instead
-
0.2.001 May 2019Release notes
Open source →Added
- Raster implements Clone and Debug
- Raster::set_rect
- Implemented PartialEq for alpha8, gray8, rgb8 and rgba8
Changed
- Updated to rust 2018 edition
-
0.1.009 Apr 2019