PackageTrack
Sign in Get early access

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
Release Pre-release

Releases

latest 22
  1. 1.0.1 18 Jun 2026
    Release notes
    • Fixed Pix conversion where dst has alpha, but src does not
    Open source →
  2. 1.0.0 22 May 2026
    Release notes

    Changed

    • Nothing
    Open source →
  3. 0.15.0 15 Apr 2026
    Release notes

    Changed

    • Replace Pix1, Pix2, etc. with Pix, using const-generics
    • Palette::make_indexed now returns Option (None on palette full)
    Open source →
  4. 0.14.0 15 Mar 2025
    Release notes

    Changed

    • Rust 2024 edition
    Open source →
  5. 0.13.4 24 Oct 2024

    Nothing published for this version

  6. 0.13.3 01 Sep 2023
    Release notes

    Added

    • Oklab color model
    • XYZ color model
    • Palette::make_indexed
    Open source →
  7. 0.13.2 01 Jun 2022
    Release notes

    Added

    • impl From<(i32, i32)> for Region
    Open source →
  8. 0.13.1 04 Jun 2020
    Release notes

    Added

    • Region::left() and ::top()

    Changed

    • Made Region::width(), ::height(), ::right() and ::bottom() pub
    Open source →
  9. 0.13.0 05 May 2020
    Release notes

    Changed

    • Raster::rows() / rows_mut() sliced to span of region
    • Renamed Pixel::composite_channels_matte to composite_channels_alpha
    • Matte type aliases premultiplied instead of straight
    Open source →
  10. 0.12.0 24 Apr 2020
    Release notes

    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
    Open source →
  11. 0.11.0 11 Apr 2020
    Release notes

    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 alpha associated functions out of ColorModel trait

    Removed

    • Raster::set_pixel(x, y, p)
    • Pix1::From<u8> and Pix1::From<i32>
    • Raster::set_region
    • RasterBuilder (use Raster::with_ methods instead)
    Open source →
  12. 0.10.0 26 Mar 2020
    Release notes

    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 new to construct
    • Gray conversion now uses perceptual luminance

    Removed

    • alpha::Alpha and Translucent/Opaque
    • Gray/Rgb with_alpha constructors (use new instead)
    Open source →
  13. 0.9.0 08 Mar 2020
    Release notes

    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
    Open source →
  14. 0.8.0 20 Feb 2020
    Release notes

    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
    Open source →
  15. 0.7.0 01 Jan 2020
    Release notes

    Added

    • Implemented From u8, u16, f32 for Translucent
    • Implemented From for Translucent <=> Opaque

    Changed

    • Alpha, Channel now depend on traits Debug + Mul
    Open source →
  16. 0.6.1 28 Jul 2019
    Release notes

    Added

    • Allow converting from Mask to Rgb
    Open source →
  17. 0.6.0 25 May 2019
    Release notes

    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)
    Open source →
  18. 0.5.0 18 May 2019
    Release notes

    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)
    Open source →
  19. 0.4.0 11 May 2019
    Release notes

    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
    Open source →
  20. 0.3.0 06 May 2019
    Release notes

    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
    Open source →
  21. 0.2.0 01 May 2019
    Release notes

    Added

    • Raster implements Clone and Debug
    • Raster::set_rect
    • Implemented PartialEq for alpha8, gray8, rgb8 and rgba8

    Changed

    • Updated to rust 2018 edition
    Open source →
  22. 0.1.0 09 Apr 2019
    Release notes

    Added

    • Initial version (from footile)
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive