Exemples de comment tourner une image en python avec le module pillow
Tourner une image en gardant la même taille
Pour tourner une image, il existe la fonction pillow rotate(), exemple
from PIL import Image
im = Image.open("eiffel_tower.jpg")
print(im.size)
im = im.rotate(45)
print(im.size)
im.save("eiffel_tower_rotate_01.jpg")
im.show()
Tourner une image
On peut jouter l'option "expand = 1" pour tourner une image sans la couper:
from PIL import Image
im = Image.open("eiffel_tower.jpg")
print(im.size)
im = im.rotate(45, expand = 1)
print(im.size)
im.save("eiffel_tower_rotate_02.jpg")
im.show()
Tourner une image (changer la couleur de fond)
On peut aussi changer la couleur de fond depuis la version 5.2 de PIL:
>>> import PIL
>>> PIL.__version__
'5.2.0'
exemple
from PIL import Image
im = Image.open("eiffel_tower.jpg")
im = im.rotate(45, expand = 1, fillcolor='white')
im.save("eiffel_tower_rotate_02.jpg")
im.show()
Tourner une image verticalement
Pour retourner une image avec pillow une solution est d'utiliser la fonction rotate(), exemple:
from PIL import Image
im = Image.open("eiffel_tower.jpg")
im = im.rotate(180)
im.save("eiffel_tower_fliped_vertically.jpg")
On peut aussi utiliser la fonction flip():
from PIL import Image
from PIL import ImageOps
im = Image.open("eiffel_tower.jpg")
im = ImageOps.flip(im)
im.save("eiffel_tower_fliped_vertically.jpg")
Autre solution, utiliser numpy et la fonction flipud, illustration:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img = mpimg.imread('eiffel_tower.jpg')
img2 = np.flipud(img)
plt.imshow(img2)
plt.savefig("eiffel_tower_fliped_vertically.png", dpi=200)
plt.show()
Note: pour sauvegarder une figure avec matplotlib sans les axes voir: Comment sauver une image seule sans les contours ou les labels avec matplotlib ?
Références
Liens | Site |
---|---|
numpy.flipud | numpy doc |
Comment sauver une image seule sans les contours ou les labels avec matplotlib ? | science-emergence article |
Image Module | illow.readthedocs.io |
ImageOps Module | pillow.readthedocs.io |
Flopped image | wikipedia |
Flipped image | wikipedia |
Flip An Image | docs.gimp.org |
PIL - Images not rotating | stackoverflow |
Image rotation in Pillow | stackoverflow |
pixabay | pixabay |