我刚刚开始计算机科学类(class),我们正在使用 Jython。我试图从不同的 X 和 Y 点开始获取多张图片,但它不起作用。我的代码如下:
def collage():
setMediaPath()
canvas=makeEmptyPicture(700, 515, white)
chipmunks=makePicture("Chipmunks.jpg")
chipmunksXPos=235
chipmunksYPos=0
copy(chipmunks, canvas, chipmunksXPos, chipmunksYPos)
chipmunksGrayscale=makePicture("Chipmunks.jpg")
grayscaleXPos=0
grayscaleYPos=0
copy(chipmunksGrayscale, canvas, grayscaleXPos, grayscaleYPos)
chipmunksNegative=makePicture("Chipmunks.jpg")
negativeXPos=470
negativeYPos=0
copy(chipmunksNegative, canvas, negativeXPos, negativeYPos)
show(canvas)
def copy(sourcePic, targetPic, iniX, iniY):
targetX=iniX
for sourceX in range(iniX, getWidth(sourcePic)):
targetY=iniY
for sourceY in range(iniY, getHeight(sourcePic)):
pxColor=getColor(getPixel(sourcePic, sourceX, sourceY))
setColor(getPixel(targetPic, targetX, targetY), pxColor)
targetY+=1
targetX+=1
注意:我现在只是想把图片放在正确的位置。我将把原始图像更改为灰度和负片,因此名称很奇怪。另外,我在实际程序中设置了媒体路径,并且功能完美。
问题出在复制功能上。
请将复制功能替换为以下代码。它将把图像并排复制到 Canvas 上。
def copy(sourcePic, targetPic, iniX, iniY):
targetX=iniX
for sourceX in range(0, getWidth(sourcePic)):
targetY=iniY
for sourceY in range(0, getHeight(sourcePic)):
pxColor=getColor(getPixel(sourcePic, sourceX, sourceY))
setColor(getPixel(targetPic, targetX, targetY), pxColor)
targetY+=1
targetX+=1
当您试图找出代码哪里出了问题时,最好将其分解为更小的部分并打印结果。更容易推断哪里出了问题。只是对 future 的一个提示。
我是一名优秀的程序员,十分优秀!