положить пиксель с пиглетом - PullRequest
0 голосов
/ 26 декабря 2010

Я новичок в Пиглет. Я хотел бы изменить пиксель с черного на белый на каждой итерации on_draw. Таким образом, после 1000 итераций в окне должно быть ровно 1000 белых пикселей. Однако я хотел бы избежать вызова 1000 операций рисования в on_draw для этого. Поэтому я хотел бы создать изображение, поместить RGB-пиксель на изображение и переместить изображение на экран. Как я могу это сделать? Документация pyglet, примеры и исходный код не слишком полезны для этого.

Ответы [ 3 ]

1 голос
/ 15 декабря 2013

Слишком поздно, чтобы помочь вам, но есть способы сделать это. Например, blit_into, который изменяет загруженное изображение:

import pyglet
window = pyglet.window.Window(600, 600)
background = pyglet.resource.image('my600x600blackbackground.bmp')
pix = pyglet.resource.image('singlewhitepixel.bmp').get_image_data()

def update(dt):
    background.blit_into(pix, x, y, 0) #specify x and y however you want

@window.event
def on_draw():
    window.clear()
    background.blit(0,0)

pyglet.clock.schedule(update, 1.0/30) #30 frames per second
pyglet.app.run()
1 голос
/ 27 февраля 2017

Поскольку никто не дал по-настоящему хорошего ответа на этот вопрос.
Я поставлю один здесь:

import pyglet
from random import randint

width, height = 500, 500
window = pyglet.window.Window(width=width, height=height)
image = pyglet.image.SolidColorImagePattern((255,255,255,255)).create_image(width, height)

data = image.get_image_data().get_data('RGB', width*3)
new_image = b''

for i in range(0, len(data), 3):
    pixel = bytes([randint(0,255)]) + bytes([randint(0,255)]) + bytes([randint(0,255)])
    new_image += pixel

image.set_data('RGB', width*3, new_image)

@window.event
def on_draw():
    window.clear()
    image.blit(0, 0)

pyglet.app.run()

По существу, это создает белое изображение, которое само по себе может бытьнарисовано в окне.Но учитывая, что мы хотим сделать putpixel, я изменил каждый пиксель на белом изображении в качестве демонстрации.

Может использоваться в сочетании с:

Который можно использовать для дальнейшей оптимизации изображения.

0 голосов
/ 29 апреля 2011

Поскольку я не получил никаких ответов, кажется, что в pyglet нет простого способа сделать это. Так что я отказался от использования pyglet.

...