在pygame表面中使白色像素的随机子集变黑

时间:2011-05-18 21:37:01

标签: python pygame

我有一个pygame表面(由font.render创建的一些文本),除了一些像素是白色之外,它们大多是透明的。我想将这些白色像素中的一半改为黑色。我知道我可以遍历每个像素,通过get_at()检查它是否是白色并使用set_at()更改它的颜色,但它让我觉得必须有一种更快的方法来告诉pygame抓取所有白色像素并更改随机的一半是黑色的。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为您需要遍历所有像素以检查它们是否为白色。获得白人列表后,请执行以下操作:

for px in random.sample(whites,len(whites)/2):
    Surface.set_at((px.x,px.y),'black')

Python Documentation - random