喜欢这个
这就是我所拥有的,但它不起作用,我不知道为什么。
def mirrorDiagonal(picture):
for sourceX in range(0,getWidth(picture)):
for sourceY in range (0,getHeight(picture)):
pex=getPixel(picture,sourceY,sourceX)
pix=getPixel(picture, sourceX,sourceY)
color=getColor(pix)
setColor(pex,color)
答案 0 :(得分:2)
因为我错了所以编辑了这篇文章。
正如Jan所说,如果你想保留一半的图片,你必须考虑不要覆盖所有的像素。
它应该是这样的:
def mirrorDiagonal(picture):
for sourceX in range(0,getWidth(picture)):
for sourceY in range (sourceX,getHeight(picture)):
pex=getPixel(picture,sourceY,sourceX)
pix=getPixel(picture, sourceX,sourceY)
color=getColor(pix)
setColor(pex,color)
尽管如此,你可能还想想想要翻转的对角线。
答案 1 :(得分:1)
让我们说你处于蓝色的位置(x,y)=(7,8),算法将(8,7)(绿色)像素变为蓝色。 当你的循环到达点(8,7)时,它会从先前的任务中发现它是蓝色的,并且你不再拥有原始颜色(绿色)。结果,最终右上角对角线不变,左下角反射。
为了恢复左下角的原始值,您需要将它们存储在某处并在x> gt时使用它们。 y(图片的左下部分)
[编辑]请注意,根据图片的几何形状,转换(x,y) - > (y,x)可能指向一个不存在的点。考虑50px x 100px图片,当您在点(50,100)处调用像素(100,50)以更改其颜色而原始图片中不存在时