Skip to content Skip to sidebar Skip to footer

Pixelwise Drawing In Pyglet (python)

OK. I'm tired of googling and reading throught lots of documentation with no results. My aim is simple: get pyglet to draw an image pixel by pixel. I've been searching for hours wi

Solution 1:

As long as you realize this is going to take a long time...:

pyglet.graphics.draw can drawn one or more points when you pass it pyglet.gl.GL_POINTS, and you can pass attributes such as color as well as coordinates. For example:

for i in range(50):
    for j in range(50):
        color = int(2.56 * (i + j))
        pyglet.graphics.draw(1, pyglet.gl.GL_POINTS,
            ('v2i', (i, j)),
            ('c3B', (color, color, color))
        )

draws a 50 by 50 square with a diagonal gradient from black to white-ish. Just don't expect it to be particularly fast at doing that;-) -- GL is really oriented to graphics with much higher level of abstraction, not "pixel by pixel" painting.

You could get a modicum of extra speed by computing (say) a row at a time, and drawing that, instead of actually drawing pixels singly. But it still won't be super-fast!-)

Post a Comment for "Pixelwise Drawing In Pyglet (python)"