调整图像

时间:2016-03-11 00:37:07

标签: python image

我要做的是每当它要求输入时我想要将值放在100和-100之间并且在percentage_for_white函数内我还必须将收到的值转换为小数。该值必须进入另一个名为

的函数
  

percentage_for_white_amount

值和它一起,它必须调整我们被分配在"思考像计算机科学家"中的活动代码上的图像的光。在有" 2-维"的章节中预订并在activecode 4编辑器中。我完成了所有这些但是当我把它放在一起时,它继续说没有定义amount_white。我不知道我需要做些什么来解决,所以请帮忙。

这就是我所拥有的:

import image
def main():
  percentage_for_white_amount()
  light_levels()

def light_levels():
  img = image.Image("luther.jpg")
  win = image.ImageWin(img.getWidth(), img.getHeight())
  img.draw(win)
  img.setDelay(1,15)   # setDelay(0) turns off animation

  for row in range(img.getHeight()):
    for col in range(img.getWidth()):
        p = img.getPixel(col, row)

        newred =  255 * amount_white + p.getRed() * (1 - amount_white)
        newgreen =  255 * amount_white + p.getGreen() * (1 - amount_white)
        newblue =  255 * amount_white + p.getBlue() * (1 - amount_white)

        if newred >= 0 and newred <= 255:
          True
        if newgreen >= 0 and newgreen <= 255:
          True
        if newblue >= 0 and newblue <= 255:
          True

        newpixel = image.Pixel(newred, newgreen, newblue)

        img.setPixel(col, row, newpixel)

        img.draw(win)
        win.exitonclick()

def percentage_for_white_amount():
    percentage_white = -200
    while percentage_white < -100 or percentage_white > 100:
        percentage_white = input("Provide the amount of white to blend in the image (values -100 and 100): ")
        percentage_white = float(percentage_white)
        percentage_white = percentage_white / 10
        return percentage_white

main()

如果有人能帮助我找出错误或帮助我解决问题,我将不胜感激!

1 个答案:

答案 0 :(得分:0)

我发现您的代码存在两个问题。

  1. percentage_white函数中的percentage_for_white_amount()是函数的本地变量,因此如果函数定义,则需要在最开始添加global percentage_white语句。 / p>

  2. return percentage_white函数中的percentage_for_white_amount()语句缩进太多,使其成为while循环的一部分 - 因此它将在第一次迭代结束时执行无论percentage_white的当前值如何,都会循环。