【发布时间】:2018-04-06 02:21:31
【问题描述】:
因此,我正在尝试创建一段代码,该代码将获取绿屏图像并将其放置在没有绿屏且透明的背景上。我这样做是为了分配,所以我不能使用色度键或字母键功能。我应该使用嵌套循环来计算每个绿色像素,如果它不是绿色的,我不会将它复制到背景图像中。不管怎样,这是我的代码。
for i in range(0, fy):
for j in range(0, fx):
(red,green,blue) = fg.get_at( (i,j) )
if green == 255:
green = 0
else :
fg.set_at( (i,j), (red,0,blue) )
pygame.display.update()
fx 和 fy 之前已声明为前景绿屏图像的图像大小。我收到一条错误消息:
Traceback (most recent call last):
File "a6.py", line 60, in <module>
(red,green,blue) = fg.get_at( (i,j) )
ValueError: too many values to unpack (expected 3)
谁来帮帮我
【问题讨论】:
-
(red,green,blue) -> red,green,blue fg.get_at( (i,j) ) 返回元组,您需要与元组元素一样多的变量。现在你在左边有一个变量“(red,green,blue)”。
-
什么是
get_at()?您使用的是什么确切的 python3 版本?另外,请更正代码的缩进。 -
尝试使用打印
fp.get_at返回的内容进行调试 -
我猜你可能忘记解压 alpha 通道:
(red,green,blue,alpha) = fg.get_at( (i,j) )
标签: python python-3.x valueerror