Mirroring an Image by its Diagonal in Jython

若如初见. 提交于 2019-12-22 11:27:56

问题


So I need to mirror an image. The top right side of the image should be flipped over to the bottom left side. I created a function that flips the top left side of an image to the bottom right, but I just can't seem to figure out how to do it the other way. Here's the code:

def mirrorPicture(picture):
 height = getHeight(canvas)
 width = height 

 # to make mirroring easier, let us make it a square with odd number 
 # of rows and columns
 if (height % 2 == 0):
    height =  width = height -1  # let us make the height and width odd


 maxHeight = height - 1
 maxWidth  = width - 1

 for y in range(0, maxWidth):
      for x in range(0, maxHeight - y):     
      sourcePixel = getPixel(canvas, x, y)
      targetPixel = getPixel(canvas, maxWidth - y, maxWidth - x)
      color = getColor(sourcePixel)
      setColor(targetPixel, color)

 return canvas

btw, i'm using an IDE called "JES".


回答1:


If by "mirroring", you meant "flip diagonally", this should work :

def mirrorPicture(picture):
    height = getHeight(picture)
    width = getWidth(picture)

    newPicture = makeEmptyPicture(height, width)

    for x in range(0, width):   
        for y in range(0, height):
            sourcePixel = getPixel(picture, x, y)

            targetPixel = getPixel(newPicture, y, x)
            #                                  ^^^^  (simply invert x and y)
            color = getColor(sourcePixel)
            setColor(targetPixel, color)

    return newPicture

Giving :


..................

..............................

.................


Related answer about mirroring diagonally here.



来源:https://stackoverflow.com/questions/17099584/mirroring-an-image-by-its-diagonal-in-jython

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!