2010-08-20 5 views
5

OK. Я устал от поискового запроса и чтения сквозной документации без каких-либо результатов.пиксельный рисунок в pyglet (python)

Моя цель проста: возьмите пистолет, чтобы нарисовать пиксель изображения по пикселям.

Я искал часы без каких-либо результатов. Может ли кто-нибудь привести пример короткой программы, которая рисует на дисплее с указанием пикселя по пикселям? Например: рисование градиента от черного до белого.

+0

Нужно ли использовать пигмент? pygame сделает это намного проще –

+0

@gnibbler: Да, мой код изначально был написан в pygame, и он работал (по крайней мере, дома). Но мне нужно было запустить его в моем университете, и я не мог сделать virtualenv для поддержки pygame ... Итак, я пошел за пикетом –

ответ

6

Пока вы понимаете, что это собирается взять долгое время ...:

pyglet.graphics.draw тазов обращается одна или несколько точек, когда вы передаете его pyglet.gl.GL_POINTS, и вы можете передать атрибуты, такие как цвет, а также как координаты. Например:

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)) 
     ) 

рисует квадрат 50 на 50 с диагональным градиентом от черного до белого. Просто не ожидайте, что это будет особенно быстро при этом :-) - GL действительно ориентирован на графику с гораздо более высоким уровнем абстракции, а не на «пиксельной по пиксели» картине.

Вы можете получить дополнительную скорость, вычислив (скажем) строку за раз, и рисунок, вместо того, чтобы рисовать пиксели по отдельности. Но это еще не супер-быстро! -)

+1

Спасибо Alex! Я использую вашу идею, так как я просто рисую этот пиксельный способ для отладки. Нет необходимости в высокой производительности. –

+1

@Manuel, добро пожаловать! –

 Смежные вопросы

  • Нет связанных вопросов^_^