好的,对于作业,我必须制作一个函数crop()
来裁剪test_crop()
中的图片。这是代码。
def crop(pict, startX, startY, endX, endY):
width = endX - startX + 1
height = endY - startY + 1
canvas = makeEmptyPicture(width, height)
targetX = 100
for sourceX in range(45,200):
targetY = 100
for sourceY in range(25,200):
color = getColor(getPixel(pict, sourceX, sourceY))
setColor(getPixel(canvas, targetX, targetY), color)
targetY = targetY + 1
targetX = targetX + 1
show(pict)
show(canvas)
return canvas
def test_crop():
setMediaPath()
pict = makePicture("redMotorcycle.jpg")
croppedPict = crop(pict, 100, 100, 700, getHeight(pict)/2)
show(pict)
show(croppedPict)
这段代码发生错误:
setColor(getPixel(canvas, targetX, targetY), color)
它说"Inappropriate argument (of correct type. An error occured attempting to pass an argument to a function."
有人可以告诉我它有什么问题吗?它与教科书中的代码相同。
答案 0 :(得分:0)
这很有效。我无法弄清楚你为什么会收到这个错误,可能就是你如何获得startX, startY, endX, endY
的价值
def crop(pict, startX, startY, endX, endY):
def crop(pict):
width = getWidth(pict)
height = getHeight(pict)
canvas = makeEmptyPicture(width, height)
targetX = 100
for sourceX in range(45,200):
targetY = 100
for sourceY in range(25,200):
color = getColor(getPixel(pict, sourceX, sourceY))
setColor(getPixel(canvas, targetX, targetY),color)
targetY = targetY + 1
targetX = targetX + 1
show(pict)
show(canvas)
return canvas
原始图片:
裁剪后的图片:
除此之外,您还需要提供有关代码的更多信息。