_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)¶ 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]])¶ Fills the given pixelbuf with the given color.
-
__getitem__
(self, index: slice)¶ -
__getitem__
(self, index: int) Returns the pixel value at the given index as a tuple of (Red, Green, Blue[, White]) values between 0 and 255. When in PWM (DotStar) mode, the 4th tuple value is a float of the pixel intensity from 0-1.0.
-
__setitem__
(self, index: slice, value: Tuple[Union[int, Tuple[float, ...], List[float]], ...])¶ -
__setitem__
(self, index: slice, value: List[Union[int, Tuple[float, ...], List[float]]]) -
__setitem__
(self, index: int, value: Union[int, Tuple[float, ...], List[float]]) Sets the pixel value at the given index. Value can either be a tuple or integer. Tuples are The individual (Red, Green, Blue[, White]) values between 0 and 255. If given an integer, the red, green and blue values are packed into the lower three bytes (0xRRGGBB). For RGBW byteorders, if given only RGB values either as an int or as a tuple, the white value is used instead when the red, green, and blue values are the same.