Python代码创建图像的镜像,并将其与一定量的白色混合。
我是Python的新手,我正在尝试学习用Python处理图片。下面的这段代码是创建图片的镜像,然后将其淡入白色。但当我执行代码时,出现了下面的错误:“错误是:'int'和'function' 参数类型不正确。 试图使用无效类型的参数调用函数。这意味着您做了一些事情,例如尝试将字符串传递给需要整数的方法。“我不确定是什么原因导致此错误,我需要帮助。”Python代码创建图像的镜像,并将其与一定量的白色混合。,python,colors,flip,Python,Colors,Flip,我是Python的新手,我正在尝试学习用Python处理图片。下面的这段代码是创建图片的镜像,然后将其淡入白色。但当我执行代码时,出现了下面的错误:“错误是:'int'和'function' 参数类型不正确。 试图使用无效类型的参数调用函数。这意味着您做了一些事情,例如尝试将字符串传递给需要整数的方法。“我不确定是什么原因导致此错误,我需要帮助。” def blendWhite(pixcel, fadeAmount): newRed = 255 * fadeAmount + getRed
def blendWhite(pixcel, fadeAmount):
newRed = 255 * fadeAmount + getRed(pixel) * (1 - fadeAmount)
newGreen = 255 * fadeAmount + getGreen(pixel) * (1 - fadeAmount)
newBlue = 255 * fadeAmount + getBlue(pixel) * (1 - fadeAmount)
setColor(pixel, makeColor(newRed, newGreen, newBlue))
def copyAndMirrorCat():
catFile = getMediaPath("caterpillarSmall.jpg")
catPict = makePicture(catFile)
width = getWidth(catPict)
height = getHeight(catPict)
canvas = makeEmptyPicture(width, height * 2)
# Now, do the actual copying
for x in range(0, width):
for y in range(0, height):
color = getColor(getPixel(catPict, x, y))
setColor(getPixel(canvas, x, y), color)
h = height * 2
fadeAmount(y, h)
blendWhite(getPixel(canvas, x, (height * 2) - y - 1), fadeAmount)
show(catPict)
show(canvas)
return canvas
def fadeAmount(y, h):
fm = (h - y) / float(h) + 0.15
if fm > 1:
fm = 1
return fm
这就是结果的样子:如果你看一下你说:
fadeAmount(y,h)
blendWhite(getPixel(canvas,x,(height*2)-y-1),fadeAmount)
您将看到调用fadeAmount()
,而不将值存储在变量中。然后尝试将函数传递给blendWhite()
。这是行不通的。您需要存储并传递该值,如:
fa = fadeAmount(y,h)
blendWhite(getPixel(canvas,x,(height*2)-y-1),fa)
…或者只说一句话:
blendWhite(getPixel(canvas,x,(height*2)-y-1),fadeAmount(y,h))
如果你看下面几行,你会说:
fadeAmount(y,h)
blendWhite(getPixel(canvas,x,(height*2)-y-1),fadeAmount)
您将看到调用fadeAmount()
,而不将值存储在变量中。然后尝试将函数传递给blendWhite()
。这是行不通的。您需要存储并传递该值,如:
fa = fadeAmount(y,h)
blendWhite(getPixel(canvas,x,(height*2)-y-1),fa)
…或者只说一句话:
blendWhite(getPixel(canvas,x,(height*2)-y-1),fadeAmount(y,h))
你应该分享更多你的错误。如果你通读它,你会在那里看到一个行号,这样你就可以知道它是从哪里来的。背景很重要。包括您正在使用的库也很有帮助。我怀疑您遇到的问题与“fadeAmount”有关-您在不保存值的情况下调用函数,然后尝试将函数名传递给blendWhite()。错误发生在第一行的newRed=255*fadeAmount+getRed(pixel)*(1-fadeAmount)输入错误,
pixcel
。您应该分享更多错误。如果你通读它,你会在那里看到一个行号,这样你就可以知道它是从哪里来的。背景很重要。包括您正在使用的库也很有帮助。我怀疑您遇到的问题与“fadeAmount”有关-您在不保存值的情况下调用函数,然后尝试将函数名传递给blendWhite()。错误发生在第一行的newRed=255*fadeAmount+getRed(pixel)*(1-fadeAmount)输入错误,pixcel
。谢谢。我会解决的。它运行,但镜像没有显示,在原始图像下只有一个纯白色部分。@班夫,现在你只剩下逻辑问题,而不是程序爆炸。回去工作,谢谢。我会解决的。它运行,但镜像没有显示,在原始图像下只有一个纯白色部分。@班夫,现在你只剩下逻辑问题,而不是程序爆炸。回去工作。