[−][src]Crate pix
Library for pixel and image compositing.
A raster image is a rectangular array of pixels.
Color Models
RGB
/BGR
(red, green, blue)Gray
(luma / relative luminance)HSV
(hue, saturation, value)HSL
(hue, saturation, lightness)HWB
(hue, whiteness, blackness)YCbCr
(JPEG)Matte
(alpha only)
Example: Color Demo
use pix::{Raster, SHwb8}; let mut r = Raster::<SHwb8>::with_clear(256, 256); for (y, row) in r.rows_mut().enumerate() { for (x, p) in row.iter_mut().enumerate() { let h = ((x + y) >> 1) as u8; let w = y.saturating_sub(x) as u8; let b = x.saturating_sub(y) as u8; *p = SHwb8::new(h, w, b); } }
Example: Convert Raster Format
use pix::{Raster, Rgba8p, SRgb8}; let mut src = Raster::<SRgb8>::with_clear(120, 120); // ... load pixels into raster let dst: Raster<Rgba8p> = Raster::with_raster(&src);
Documentation
Modules
chan | Component channels |
clr | Color models |
el | Module for |
ops | Porter-Duff compositing operations |
Structs
Palette | Color table for use with indexed |
Raster | Image arranged as a rectangular array of pixels. |
Region | Location / dimensions of pixels relative to a Raster. |
Rows | |
RowsMut |
Type Definitions
Bgr8 | Bgr 8-bit opaque (no alpha channel) linear gamma pixel format. |
Bgr16 | Bgr 16-bit opaque (no alpha channel) linear gamma pixel format. |
Bgr32 | Bgr 32-bit opaque (no alpha channel) linear gamma pixel format. |
Bgra8 | |
Bgra8p | Bgr 8-bit premultiplied alpha linear gamma pixel format. |
Bgra16 | |
Bgra16p | Bgr 16-bit premultiplied alpha linear gamma pixel format. |
Bgra32 | |
Bgra32p | Bgr 32-bit premultiplied alpha linear gamma pixel format. |
Gray8 | Gray 8-bit opaque (no alpha channel) linear gamma pixel format. |
Gray16 | Gray 16-bit opaque (no alpha channel) linear gamma pixel format. |
Gray32 | Gray 32-bit opaque (no alpha channel) linear gamma pixel format. |
Graya8 | |
Graya8p | Gray 8-bit premultiplied alpha linear gamma pixel format. |
Graya16 | |
Graya16p | Gray 16-bit premultiplied alpha linear gamma pixel format. |
Graya32 | |
Graya32p | Gray 32-bit premultiplied alpha linear gamma pixel format. |
Hsl8 | Hsl 8-bit opaque (no alpha channel) linear gamma pixel format. |
Hsl16 | Hsl 16-bit opaque (no alpha channel) linear gamma pixel format. |
Hsl32 | Hsl 32-bit opaque (no alpha channel) linear gamma pixel format. |
Hsla8 | |
Hsla8p | Hsl 8-bit premultiplied alpha linear gamma pixel format. |
Hsla16 | |
Hsla16p | Hsl 16-bit premultiplied alpha linear gamma pixel format. |
Hsla32 | |
Hsla32p | Hsl 32-bit premultiplied alpha linear gamma pixel format. |
Hsv8 | Hsv 8-bit opaque (no alpha channel) linear gamma pixel format. |
Hsv16 | Hsv 16-bit opaque (no alpha channel) linear gamma pixel format. |
Hsv32 | Hsv 32-bit opaque (no alpha channel) linear gamma pixel format. |
Hsva8 | |
Hsva8p | Hsv 8-bit premultiplied alpha linear gamma pixel format. |
Hsva16 | |
Hsva16p | Hsv 16-bit premultiplied alpha linear gamma pixel format. |
Hsva32 | |
Hsva32p | Hsv 32-bit premultiplied alpha linear gamma pixel format. |
Hwb8 | Hwb 8-bit opaque (no alpha channel) linear gamma pixel format. |
Hwb16 | Hwb 16-bit opaque (no alpha channel) linear gamma pixel format. |
Hwb32 | Hwb 32-bit opaque (no alpha channel) linear gamma pixel format. |
Hwba8 | |
Hwba8p | Hwb 8-bit premultiplied alpha linear gamma pixel format. |
Hwba16 | |
Hwba16p | Hwb 16-bit premultiplied alpha linear gamma pixel format. |
Hwba32 | |
Hwba32p | Hwb 32-bit premultiplied alpha linear gamma pixel format. |
Matte8 | |
Matte16 | |
Matte32 | |
Rgb8 | Rgb 8-bit opaque (no alpha channel) linear gamma pixel format. |
Rgb16 | Rgb 16-bit opaque (no alpha channel) linear gamma pixel format. |
Rgb32 | Rgb 32-bit opaque (no alpha channel) linear gamma pixel format. |
Rgba8 | |
Rgba8p | Rgb 8-bit premultiplied alpha linear gamma pixel format. |
Rgba16 | |
Rgba16p | Rgb 16-bit premultiplied alpha linear gamma pixel format. |
Rgba32 | |
Rgba32p | Rgb 32-bit premultiplied alpha linear gamma pixel format. |
SBgr8 | Bgr 8-bit opaque (no alpha channel) sRGB gamma pixel format. |
SBgr16 | Bgr 16-bit opaque (no alpha channel) sRGB gamma pixel format. |
SBgr32 | Bgr 32-bit opaque (no alpha channel) sRGB gamma pixel format. |
SBgra8 | |
SBgra8p | Bgr 8-bit premultiplied alpha sRGB gamma pixel format. |
SBgra16 | |
SBgra16p | Bgr 16-bit premultiplied alpha sRGB gamma pixel format. |
SBgra32 | |
SBgra32p | Bgr 32-bit premultiplied alpha sRGB gamma pixel format. |
SGray8 | Gray 8-bit opaque (no alpha channel) sRGB gamma pixel format. |
SGray16 | Gray 16-bit opaque (no alpha channel) sRGB gamma pixel format. |
SGray32 | Gray 32-bit opaque (no alpha channel) sRGB gamma pixel format. |
SGraya8 | |
SGraya8p | Gray 8-bit premultiplied alpha sRGB gamma pixel format. |
SGraya16 | |
SGraya16p | Gray 16-bit premultiplied alpha sRGB gamma pixel format. |
SGraya32 | |
SGraya32p | Gray 32-bit premultiplied alpha sRGB gamma pixel format. |
SHwb8 | Hwb 8-bit opaque (no alpha channel) srgb gamma pixel format. |
SHwb16 | Hwb 16-bit opaque (no alpha channel) srgb gamma pixel format. |
SHwb32 | Hwb 32-bit opaque (no alpha channel) srgb gamma pixel format. |
SRgb8 | Rgb 8-bit opaque (no alpha channel) sRGB gamma pixel format. |
SRgb16 | Rgb 16-bit opaque (no alpha channel) sRGB gamma pixel format. |
SRgb32 | Rgb 32-bit opaque (no alpha channel) sRGB gamma pixel format. |
SRgba8 | |
SRgba8p | Rgb 8-bit premultiplied alpha sRGB gamma pixel format. |
SRgba16 | |
SRgba16p | Rgb 16-bit premultiplied alpha sRGB gamma pixel format. |
SRgba32 | |
SRgba32p | Rgb 32-bit premultiplied alpha sRGB gamma pixel format. |
YCbCr8 | YCbCr 8-bit opaque (no alpha channel) linear gamma pixel format. |
YCbCr16 | YCbCr 16-bit opaque (no alpha channel) linear gamma pixel format. |
YCbCr32 | YCbCr 32-bit opaque (no alpha channel) linear gamma pixel format. |
YCbCra8 | |
YCbCra8p | YCbCr 8-bit premultiplied alpha linear gamma pixel format. |
YCbCra16 | |
YCbCra16p | YCbCr 16-bit premultiplied alpha linear gamma pixel format. |
YCbCra32 | |
YCbCra32p | YCbCr 32-bit premultiplied alpha linear gamma pixel format. |