我在大学使用这个叫做Cengage Mindtap的程序,它在语法和所需结果方面非常严格。而且我一直遇到类型错误。这些都在python Mindtap终端设备上运行,因此我不确定python空闲还是其他原因。任何人都可以解释错误将导致什么吗?同样,导入的图像文件也由Mindtap提供了代码。

'''

from images import Image

def posterize(image,rgb):
    whitePixel = (255,255,255)
    for y in range(image.getHeight()):
        for x in range(image.getWidth()):
            (nr, ng, nb) = image.getPixel(x,y)
            average = (nr + ng + nb)/3
            if average < 128:
                image.setPixel((x,y),rgb)
            else:
                image.setPixel((x,y),whitePixel)

def main():
    filename = input("Enter the image file name: ")
    red = int(input("Enter an integer [0..255] for red: "))
    green = int(input("Enter an integer [0..255] for green: "))
    blue = int(input("Enter an integer [0..255] for blue: "))
    image = Image(filename)
    posterize(image, (red, green, blue))
    image.draw()

if __name__ == "__main__":
   main()


'''

最佳答案

好吧,您的问题将在此行中:

image.setPixel((x,y),rgb)


Python告诉您的是,您没有将足够的信息传递给setPixel,它需要更多信息。我猜想setPixel希望您的xy坐标分开,而不是您提供的元组。也许这会有所帮助:

image.setPixel(x,y,rgb)


这样,setpixel获取3个参数而不是2个,这可能正是它想要的(我不熟悉此模块)

关于python - setPixel()缺少1个必需的位置参数:“color”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56298402/

10-11 17:54