- Oklab color model
- XYZ color model
Palette::make_indexed
- impl
From<(i32, i32)>
forRegion
Region::left()
and::top()
- Made
Region::width()
,::height()
,::right()
and::bottom()
pub
Raster::rows()
/rows_mut()
sliced to span of region- Renamed
Pixel::composite_channels_matte
tocomposite_channels_alpha
- Matte type aliases premultiplied instead of straight
- Raster::copy_color and copy_raster
- CMY color model
- Moved color models to their own sub-modules
- composite methods only available for premultiplied Rasters
- 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
- 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
- Raster::set_pixel(x, y, p)
Pix1::From<u8>
andPix1::From<i32>
- Raster::set_region
- RasterBuilder (use Raster::with_ methods instead)
- ColorModel trait
- HsvModel, HslModel, HwbModel and YCbCrModel
- Pix1, Pix2, Pix3, Pix4 structs
- 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
- alpha::Alpha and Translucent/Opaque
- Gray/Rgb with_alpha constructors (use
new
instead)
- 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
- 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
- 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
- Implemented From u8, u16, f32 for Translucent
- Implemented From for Translucent <=> Opaque
- Alpha, Channel now depend on traits Debug + Mul
- Allow converting from Mask to Rgb
- Implemented From for Rgb
- RasterBuilder::with_color
- Palette struct
- Format::difference / within_threshold methods
- RasterBuilder methods reworked to be more consistent
- Raster::to_raster (use RasterBuilder.with_raster instead)
- 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
- Fixed bugs in channel conversions
- Region::intersection, right, bottom reworked
- Raster::set_rect (use set_region instead)
- Srgb struct and types (use GammaMode instead)
- Ch32 channel
- Reworked alpha channel handling
- Cu8 / Cu16 renamed to Ch8 / Ch16
- Renamed PixFmt to Format
- Blending/lerp moved to pixops crate
- 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
- Alpha8, Gray8, Rgb8, Rgba8 pixel formats
- RasterB -- use Raster::with_pixels instead
- Raster implements Clone and Debug
- Raster::set_rect
- Implemented PartialEq for alpha8, gray8, rgb8 and rgba8
- Updated to rust 2018 edition
- Initial version (from footile)