这里有人能帮我吗?
我是Jython/Python(一般编码)的新手,目前我正在使用这个名为JES的程序中包含的库,它允许我轻松地更改图像等。
所以我试图通过使用两个输入来改变图像的亮度,图片和数量。
def change(picture, amount):
for px in getPixels(picture):
color = getColor(px)
alter = makeColor(color * amount)
setColor(px, alter)
我试过许多其他方法,但似乎都不起作用。图片输入已经被分配了一个图像btw.
我在终端中通过键入change(图片,0.5)来运行程序,这应该会使图像亮50%,但我一直收到这个错误:
>>> change(picture, 0.5)
The error was: 'instance' and 'float'
Inappropriate argument type.
An attempt was made to call a function with a parameter of an invalid type. This means that you did something such as trying to pass a string to a method that is expecting an integer.
你们能帮我吗?感谢
尝试将变量color
打印到控制台。您将在控制台上注意到以下内容:
color r=255 g=255 b=255
这是因为方法getColor(px)
返回一个彩色对象。该对象具有3个属性r、g、b,表示像素px
的红色、绿色、蓝色值。
现在您的问题是方法makeColor()
只接受color
的对象作为其参数。目前,您正在尝试将颜色乘以amount
,但在相乘时需要处理数字,而不是颜色。
def change(picture, amount):
for px in getPixels(picture):
# Get r,g,b values of the pixel and
myRed = getRed(px) / amount
myBlue = getBlue(px) / amount
myGreen = getGreen(px) / amount
# use those values to make a new color
newColor = makeColor(myRed, myGreen, myBlue)
setColor(px, newColor)