draw_pixels
Plot individual pixels at exact coordinates with optional per-pixel colors, targeting a layer and frame, and report written or clipped pixels.
Instructions
Plot individual pixels.
Args:
pixels: List of {"x": int, "y": int, "color": "#hex"?}. If a pixel omits
"color", the shared color argument is used.
color: Default colour for pixels that don't specify their own.
layer: Target layer name or 1-based index (default: top layer).
frame: Target frame, 1-based (default 1).
Coordinates: (0, 0) is the top-left pixel. x grows right, y grows DOWN. A span given as position plus size covers x .. x + width - 1, so width is a count of pixels, not an offset to the far edge.
Centring differs between primitives, so check this when aligning two shapes:
draw_rectangle(x, width) spans x .. x+width-1, centred on x + (width-1)/2. An even width therefore centres on a half pixel.
draw_ellipse(center, radius) spans center-radius .. center+radius, which is always an ODD 2*radius+1 pixels wide and always centred on a whole pixel.
draw_ellipse_in_box(x, y, width, height) takes the same bounding box as draw_rectangle and fills it exactly, so it is the one to use for an even diameter, a disc centred on an even canvas, or a circle that has to line up with a rectangle.
draw_symmetric_pixels mirrors about the canvas, not about either of the above.
Writes falling outside the canvas are dropped rather than raising. Every drawing tool reports pixels_written, and pixels_clipped when anything was dropped, so compare those against what you asked for rather than trusting ok.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | ||
| frame | No | Default: 1. | |
| layer | No | ||
| pixels | Yes | ||
| filename | Yes |