2010-08-20 66 views
5

OK。我厌倦了使用google搜索和阅读大量文档而没有结果。按像素绘制pyglet(python)

我的目标很简单:让pyglet逐个像素地绘制图像。

我一直在寻找小时,没有结果。任何人都可以举一个简短程序的例子,画一个显示器来指定每个像素的颜色吗?例如:绘制从黑色到白色的渐变。

+0

你需要使用pyglet吗? pygame会使这更容易 – 2010-08-20 06:55:35

+0

@gnibbler:是的,我的代码最初是用pygame编写的,它起作用(至少在家中)。但我需要在我的大学运行它,我无法让virtualenv支持pygame ...所以我去了pyglet – 2010-08-31 05:04:05

回答

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

谢谢亚历克斯!我使用你的想法,因为我只是以这种像素方式进行调试。不需要高性能。 – 2010-08-31 05:01:58

+1

@曼纽尔,不客气! – 2010-08-31 05:07:01