_pixelbuf – A fast RGB(W) pixel buffer library for like NeoPixel and DotStar

The _pixelbuf module provides the PixelBuf class to accelerate RGB(W) strip/matrix manipulation, such as DotStar and Neopixel.

Byteorders are configured with strings, such as “RGB” or “RGBD”.

_pixelbuf.colorwheel(n: float)int

C implementation of the common wheel() function found in many examples. Returns the colorwheel RGB value as an integer value for n (usable in PixelBuf, neopixel, and dotstar).

_pixelbuf.wheel(n: float)int

Use of wheel() is deprecated. Please use colorwheel().

class _pixelbuf.PixelBuf(size: int, *, byteorder: str = 'BGR', brightness: float = 0, auto_write: bool = False, header: ReadableBuffer = b'', trailer: ReadableBuffer = b'')

A fast RGB[W] pixel buffer for LED and similar devices.

Create a PixelBuf object of the specified size, byteorder, and bits per pixel.

When brightness is less than 1.0, a second buffer will be used to store the color values before they are adjusted for brightness.

When P (PWM duration) is present as the 4th character of the byteorder string, the 4th value in the tuple/list for a pixel is the individual pixel brightness (0.0-1.0) and will enable a Dotstar compatible 1st byte for each pixel.

Parameters
  • size (int) – Number of pixels

  • byteorder (str) – Byte order string (such as “RGB”, “RGBW” or “PBGR”)

  • brightness (float) – Brightness (0 to 1.0, default 1.0)

  • auto_write (bool) – Whether to automatically write pixels (Default False)

  • header (ReadableBuffer) – Sequence of bytes to always send before pixel values.

  • trailer (ReadableBuffer) – Sequence of bytes to always send after pixel values.

bpp :int

The number of bytes per pixel in the buffer (read-only)

brightness :float

Float value between 0 and 1. Output brightness.

When brightness is less than 1.0, a second buffer will be used to store the color values before they are adjusted for brightness.

auto_write :bool

Whether to automatically write the pixels after each update.

byteorder :str

byteorder string for the buffer (read-only)

show(self)None

Transmits the color data to the pixels so that they are shown. This is done automatically when auto_write is True.

fill(self, color: Union[int, Tuple[int, int, int], Tuple[int, int, int, float]])None

Fills the given pixelbuf with the given color.

__getitem__(self, index: slice) → Union[Tuple[Tuple[int, int, int], …], Tuple[Tuple[int, int, int, float], …]]
__setitem__(self, index: slice, value: Tuple[Union[int, Tuple[float, …], List[float]], …])None