Python image miroir

J'ai été faire une image en miroir dans les axes horizontal et vertical. Maintenant, je vais faire de la diagonale.

J'avais fait l'hori et verti largeur de deux boucles for qui, dans le hori scénario boucle par tous les pixels de la hauteur et seulement la moitié des pixels dans la largeur. Puis il obtient la couleur d'un pixel et définie de la même couleur du pixel sur l'autre côté. En allant de la getWidth(pic) au centre.

Ensuite, j'ai mon miroir au milieu de la photo. Comment faire de la diagonale de la sorte?

Edit:

img_src = makePicture(pickAFile())
W = getWidth(img_src)
H = getHeight(img_src)

for x in range(W):
        for y in range(H):
                p = getPixel(img_src, x, y)
                colorInSrc = getColor( getPixel(img_src, x, y) )
                destPixel = getPixel(img_src, H-y-1, W-x-1)
                setColor(destPixel, colorInSrc)
  • Ce ne semble pas être une très python question, mais juste de l'algorithme sur la façon de manipuler une matrice. Il n'y rien de particulier à propos de la langue du "comment faire". La solution optimale/algorithme est de la croix de la langue
  • Je ne suis pas sûr de ce que la méthode getPixel et setColor faire, mais il semble que vous êtes en train de modifier de la même image. Dans mon exemple, vous avez besoin de créer une nouvelle image avec la largeur et la hauteur inversé (c'est à dire la hauteur de l'image d'origine deviendra la largeur de l'image) et de définir les pixels sur la nouvelle image. Si vous voulez garder la même largeur et la hauteur, et de modifier la même image, puis aller avec ce que Sven Hecht dit et que vous utilisez le code existant pour retourner à la verticale puis à l'horizontale sur la même image.
InformationsquelleAutor Jafu | 2009-09-11