2010-08-20 3 views
5

OK. Sono stanco di googling e lettura attraverso molta documentazione senza risultati.disegno pixelwise in pyglet (python)

Il mio obiettivo è semplice: ottenere pyglet per disegnare un'immagine pixel per pixel.

Ho cercato ore senza risultati. Qualcuno può dare un esempio di un breve programma che disegna in un display specificando il colore pixel per pixel? Ad esempio: disegnare un gradiente dal nero al bianco.

+0

Hai bisogno di usare pyglet? pygame renderebbe tutto più semplice –

+0

@gnibbler: Sì, il mio codice era stato originariamente scritto in pygame e funzionava (almeno a casa). Ma avevo bisogno di eseguirlo alla mia università e non potevo fare virtualenv per supportare pygame ... Così sono andato per pyglet –

risposta

6

Finché si rende conto che sta andando a prendere un lungo tempo...:

pyglet.graphics.draw lattina disegnato uno o più punti quando si passa pyglet.gl.GL_POINTS, ed è possibile passare gli attributi come il colore come pure come coordinate. Ad esempio:

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

disegna un 50 per 50 quadrato con un gradiente diagonale dal nero al bianco. Semplicemente non aspettarti che sia particolarmente veloce nel farlo ;-) - GL è davvero orientato alla grafica con un livello di astrazione molto più alto, non una pittura "pixel by pixel".

È possibile ottenere un minimo di velocità extra calcolando (diciamo) una riga alla volta e disegnando quello, invece di disegnare effettivamente i pixel singolarmente. Ma non sarà ancora super veloce! -)

+1

Grazie Alex! Sto usando la tua idea dato che sto disegnando in questo modo in pixel per il debug. Non c'è bisogno di alte prestazioni. –

+1

@Manuel, prego! –