繁体   English   中英

调整图像的亮度

[英]Adjusting light level in image

我要做的是,每当它要求输入时,我都想输入一个介于100到-100之间的值,并且在percent_for_white函数中,我还必须隐瞒接收到的值成为小数。 这个值必须进入另一个函数

percent_for_white_amount

值,并且它必须调整在“二维思考”一书的“像计算机科学家一样思考”一书中的活动代码以及在活动代码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. percentage_whitepercentage_for_white_amount()函数是一个局部变量的函数,所以你需要一个补充global percentage_white声明一开始如果函数定义。

  2. return percentage_white在声明中percentage_for_white_amount()太远功能缩进使得它的一部分while循环-所以它会在循环的第一次迭代结束执行的当前值,无论percentage_white

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM