[][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);
    }
}

Colors

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

https://docs.rs/pix

Modules

chan

Component channels

clr

Color models

el

Module for pix::el items

ops

Porter-Duff compositing operations

Structs

Palette

Color table for use with indexed Rasters.

Raster

Image arranged as a rectangular array of pixels.

Region

Location / dimensions of pixels relative to a Raster.

Rows

Iterator of rows in a raster, as slices of pixels.

RowsMut

Iterator of rows in a raster, as mutable slices of pixels.

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

Bgr 8-bit straight alpha linear gamma pixel format.

Bgra8p

Bgr 8-bit premultiplied alpha linear gamma pixel format.

Bgra16

Bgr 16-bit straight alpha linear gamma pixel format.

Bgra16p

Bgr 16-bit premultiplied alpha linear gamma pixel format.

Bgra32

Bgr 32-bit straight alpha linear gamma pixel format.

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

Gray 8-bit straight alpha linear gamma pixel format.

Graya8p

Gray 8-bit premultiplied alpha linear gamma pixel format.

Graya16

Gray 16-bit straight alpha linear gamma pixel format.

Graya16p

Gray 16-bit premultiplied alpha linear gamma pixel format.

Graya32

Gray 32-bit straight alpha linear gamma pixel format.

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

Hsl 8-bit straight alpha linear gamma pixel format.

Hsla8p

Hsl 8-bit premultiplied alpha linear gamma pixel format.

Hsla16

Hsl 16-bit straight alpha linear gamma pixel format.

Hsla16p

Hsl 16-bit premultiplied alpha linear gamma pixel format.

Hsla32

Hsl 32-bit straight alpha linear gamma pixel format.

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

Hsv 8-bit straight alpha linear gamma pixel format.

Hsva8p

Hsv 8-bit premultiplied alpha linear gamma pixel format.

Hsva16

Hsv 16-bit straight alpha linear gamma pixel format.

Hsva16p

Hsv 16-bit premultiplied alpha linear gamma pixel format.

Hsva32

Hsv 32-bit straight alpha linear gamma pixel format.

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

Hwb 8-bit straight alpha linear gamma pixel format.

Hwba8p

Hwb 8-bit premultiplied alpha linear gamma pixel format.

Hwba16

Hwb 16-bit straight alpha linear gamma pixel format.

Hwba16p

Hwb 16-bit premultiplied alpha linear gamma pixel format.

Hwba32

Hwb 32-bit straight alpha linear gamma pixel format.

Hwba32p

Hwb 32-bit premultiplied alpha linear gamma pixel format.

Matte8

Matte 8-bit straight alpha linear gamma pixel format.

Matte16

Matte 16-bit straight alpha linear gamma pixel format.

Matte32

Matte 32-bit straight alpha linear gamma pixel format.

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

Rgb 8-bit straight alpha linear gamma pixel format.

Rgba8p

Rgb 8-bit premultiplied alpha linear gamma pixel format.

Rgba16

Rgb 16-bit straight alpha linear gamma pixel format.

Rgba16p

Rgb 16-bit premultiplied alpha linear gamma pixel format.

Rgba32

Rgb 32-bit straight alpha linear gamma pixel format.

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

Bgr 8-bit straight alpha sRGB gamma pixel format.

SBgra8p

Bgr 8-bit premultiplied alpha sRGB gamma pixel format.

SBgra16

Bgr 16-bit straight alpha sRGB gamma pixel format.

SBgra16p

Bgr 16-bit premultiplied alpha sRGB gamma pixel format.

SBgra32

Bgr 32-bit straight alpha sRGB gamma pixel format.

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

Gray 8-bit straight alpha sRGB gamma pixel format.

SGraya8p

Gray 8-bit premultiplied alpha sRGB gamma pixel format.

SGraya16

Gray 16-bit straight alpha sRGB gamma pixel format.

SGraya16p

Gray 16-bit premultiplied alpha sRGB gamma pixel format.

SGraya32

Gray 32-bit straight alpha sRGB gamma pixel format.

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

Rgb 8-bit straight alpha sRGB gamma pixel format.

SRgba8p

Rgb 8-bit premultiplied alpha sRGB gamma pixel format.

SRgba16

Rgb 16-bit straight alpha sRGB gamma pixel format.

SRgba16p

Rgb 16-bit premultiplied alpha sRGB gamma pixel format.

SRgba32

Rgb 32-bit straight alpha sRGB gamma pixel format.

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

YCbCr 8-bit straight alpha linear gamma pixel format.

YCbCra8p

YCbCr 8-bit premultiplied alpha linear gamma pixel format.

YCbCra16

YCbCr 16-bit straight alpha linear gamma pixel format.

YCbCra16p

YCbCr 16-bit premultiplied alpha linear gamma pixel format.

YCbCra32

YCbCr 32-bit straight alpha linear gamma pixel format.

YCbCra32p

YCbCr 32-bit premultiplied alpha linear gamma pixel format.