gpt4 book ai didi

python - 我正在尝试将图像复制到 Canvas 上。由于某种原因,它们都从点 (0,0) 开始。我究竟做错了什么? (Jython)

转载 作者:太空宇宙 更新时间:2023-11-03 18:33:39 25 4
gpt4 key购买 nike

我刚刚开始计算机科学类(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 的一个提示。

关于python - 我正在尝试将图像复制到 Canvas 上。由于某种原因,它们都从点 (0,0) 开始。我究竟做错了什么? (Jython),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21962784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com