2010-08-20 17 views
5

OK. Mam dość googlowania i czytania wielu dokumentacji bez rezultatów.pixelwise rysunek w pyglecie (python)

Mój cel jest prosty: pobierz pyglet, aby narysować obraz piksel po pikselu.

Szukałem godzin bez wyników. Czy ktoś może podać przykład krótkiego programu, który rysuje wyświetlacz określający kolor piksel po pikselu? Na przykład: rysowanie gradientu od czerni do bieli.

+0

Czy potrzebujesz używać pyglet? pygame uczyniłoby to znacznie łatwiejszym –

+0

@gnibbler: Tak, mój kod był pierwotnie napisany w pygame i działał (przynajmniej w domu). Ale musiałem uruchomić go na moim uniwersytecie i nie mogłem zrobić virtualenv, aby obsługiwać pygame ... Więc poszedłem do pyglet –

Odpowiedz

6

Dopóki zrealizować to zajmie długi czas ...:

pyglet.graphics.draw CAN wyciągnąć jeden lub więcej punktów, kiedy przechodzą go pyglet.gl.GL_POINTS, można przekazać atrybuty, takie jak kolor, jak również jako współrzędne. Na przykład:

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

rysuje 50 na 50 kwadratów o przekątnej gradientu od czerni do bieli. Tylko nie oczekuj, że będzie to szczególnie szybkie ;-) - GL jest naprawdę zorientowany na grafikę o znacznie wyższym poziomie abstrakcji, a nie na "piksel po pikselu".

Można uzyskać odrobinę dodatkowej prędkości, obliczając (powiedzmy) wiersz na raz i rysując to, zamiast w rzeczywistości pojedynczo rysować piksele. Ale nadal nie będzie superszybki! -)

+1

Dzięki Alex! Używam twojego pomysłu, ponieważ właśnie rysuję ten pikselowy sposób dla debugowania. Nie ma potrzeby wysokiej wydajności. –

+1

@Manuel, nie ma za co! –