Pygame-使用SurfArray将某种颜色的像素重新着色为另一种颜色(阵列切片问题)

马修·弗尼尔(Matthew Fournier)

我试图为游戏提供调色板交换功能,并且试图找到一种方法将某种颜色的像素的颜色更改为另一种颜色。我已经可以使用在教程中找到的此功能使所有像素具有相同的颜色:

def color_surface(self,surface, red, green, blue):
    arr = pygame.surfarray.pixels3d(surface)
    arr[:,:,0] = red
    arr[:,:,1] = green
    arr[:,:,2] = blue

据我所知,前两个索引是像素的位置,第三个索引是颜色通道,对吗?想到这一点,我想到了这个功能:

def recolor(self,fromColor,toColor):
    arr = pygame.surfarray.pixels3d(self.image)
    for color in arr[:,:,0:]:
        if color == fromColor:
            color = toColor

现在,我完全可以确定我正在弄乱数组切片。我正在尝试做的是获取所有像素的列表,这些列表作为长度为3的颜色数组,并且如果该数组与fromColor匹配,它将切换为toColor。但是,它不起作用,并且它的邪恶特性使它不起作用。有没有更简单的方法?

还是我只是完全误解了surfArray,而索引却不是我想的那样?

Eggxactly

也许您正在寻找不太通用的东西,但是模块中有一种replace方法,PixelArray用于将一种颜色替换为另一种颜色。

arr = PixelArray(surface)
arr.replace(fromColor, toColor)
del arr

那会将表面上的一种颜色更改为另一种颜色。del语句之所以存在,是因为否则只要PixelArray对象存在,表面就保持锁定状态

至于数组切片,NumPy文档中的介绍了语法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Pygame-如何在表面中找到某种颜色

来自分类Dev

用另一种颜色Matlab替换图像中的某种颜色

来自分类Dev

背景颜色一种颜色为50%,另一种颜色为50%

来自分类Dev

背景颜色一种颜色为50%,另一种颜色为50%

来自分类Dev

将RGB图像中特定颜色的像素更改为另一种颜色Matlab

来自分类Dev

Sass @for循环-从一种颜色到另一种颜色

来自分类Dev

将背景颜色淡化为另一种颜色的另一种方法

来自分类Dev

附加到另一种颜色的li

来自分类Dev

如何使用 GraphicsMagick Nodejs 用另一种颜色替换颜色

来自分类Dev

如何检查按钮颜色从一种颜色更改为另一种颜色

来自分类Dev

如何组合颜色,就像将一种颜色绘制到另一种颜色上一样?

来自分类Dev

使用CSS填充背景-两种不同的颜色,一种与另一种颜色重叠

来自分类Dev

pygame的问题

来自分类Dev

Arduino功能可将RGB从一种颜色淡入另一种颜色

来自分类Dev

css list li点一种颜色,文本另一种颜色(仅CSS)

来自分类Dev

iOS:将UIImage中的黑色更改为另一种颜色

来自分类Dev

将网页中的白色背景更改为另一种颜色

来自分类Dev

iOS:将UIImage中的黑色更改为另一种颜色

来自分类Dev

在 ggplot2 中使用 oob 将值更改为另一种颜色

来自分类Dev

将ShapeDrawable中的单一(黑色)颜色替换为Android中的另一种颜色

来自分类Dev

文本从一种颜色闪烁到另一种CSS或jQuery

来自分类Dev

条形图有多种颜色,一种在另一种之上

来自分类Dev

从一种颜色到另一种百分比

来自分类Dev

我如何才能用一种颜色为我的CircleAvatar一半上色,而另一种则用另一种颜色上色

来自分类Dev

如何在BufferedImage中用另一种颜色替换颜色

来自分类Dev

jQuery选项卡闪烁颜色并淡入另一种颜色

来自分类Dev

算法-颜色被矩阵中的另一种颜色包围

来自分类Dev

如何知道颜色是否“触摸”另一种颜色

来自分类Dev

随机生成与另一种颜色相似的颜色

Related 相关文章

  1. 1

    Pygame-如何在表面中找到某种颜色

  2. 2

    用另一种颜色Matlab替换图像中的某种颜色

  3. 3

    背景颜色一种颜色为50%,另一种颜色为50%

  4. 4

    背景颜色一种颜色为50%,另一种颜色为50%

  5. 5

    将RGB图像中特定颜色的像素更改为另一种颜色Matlab

  6. 6

    Sass @for循环-从一种颜色到另一种颜色

  7. 7

    将背景颜色淡化为另一种颜色的另一种方法

  8. 8

    附加到另一种颜色的li

  9. 9

    如何使用 GraphicsMagick Nodejs 用另一种颜色替换颜色

  10. 10

    如何检查按钮颜色从一种颜色更改为另一种颜色

  11. 11

    如何组合颜色,就像将一种颜色绘制到另一种颜色上一样?

  12. 12

    使用CSS填充背景-两种不同的颜色,一种与另一种颜色重叠

  13. 13

    pygame的问题

  14. 14

    Arduino功能可将RGB从一种颜色淡入另一种颜色

  15. 15

    css list li点一种颜色,文本另一种颜色(仅CSS)

  16. 16

    iOS:将UIImage中的黑色更改为另一种颜色

  17. 17

    将网页中的白色背景更改为另一种颜色

  18. 18

    iOS:将UIImage中的黑色更改为另一种颜色

  19. 19

    在 ggplot2 中使用 oob 将值更改为另一种颜色

  20. 20

    将ShapeDrawable中的单一(黑色)颜色替换为Android中的另一种颜色

  21. 21

    文本从一种颜色闪烁到另一种CSS或jQuery

  22. 22

    条形图有多种颜色,一种在另一种之上

  23. 23

    从一种颜色到另一种百分比

  24. 24

    我如何才能用一种颜色为我的CircleAvatar一半上色,而另一种则用另一种颜色上色

  25. 25

    如何在BufferedImage中用另一种颜色替换颜色

  26. 26

    jQuery选项卡闪烁颜色并淡入另一种颜色

  27. 27

    算法-颜色被矩阵中的另一种颜色包围

  28. 28

    如何知道颜色是否“触摸”另一种颜色

  29. 29

    随机生成与另一种颜色相似的颜色

热门标签

归档