Jython JES:更改图像亮度不起作用



这里有人能帮我吗?

我是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)

相关内容

  • 没有找到相关文章

最新更新