Pixel Mutation#

Assumes you finished getting started.

Pixel mutation is not currently implemented to surfaces in rubato as of 2.1.0. This will hopefully come in future.

First make sure you have the numpy installed.

$ pip install numpy

Then, import numpy and rubato:

import numpy, rubato as rb

This demo will show how to change specific image pixels.

def draw_on(surf):
    pixels: numpy.ndarray = rb.sdl2.ext.pixelaccess.pixels2d(surf)
    for x in range(pixels.shape[0]):
        for y in range(pixels.shape[1]):
            random.shuffle((new := list(rb.Color.color_defaults.values())))
            pixels[x][y] = rb.Color(*(new[0])).rgba32
    return surf

image.image = draw_on(image.image)

The pixels2d() function takes in an SDL_Surface and will return a numpy array which will change the surfaces pixels by reference.

Note

If you just need to draw to the screen use Draw.point

The source code is available here.