Lorsque je fais Image.open
en python, il retourne parfois la largeur et la hauteur de l'image. Après quelques recherches (voir l'explication de post), il semble que si l'image est associée à Exif Orientation metadata
, alors cela entraînera les applications qui respectent cette propriété à la faire pivoter.Définir manuellement la propriété Exif et conserver la largeur et la hauteur d'origine de l'image en Python
Alors d'abord je teste la propriété Exif de mon image en faisant
identify -verbose image.JPG | grep Orientation
Il retourne , ce qui signifie que l'image a la propriété et donc sera retourné. Si la réponse est alors l'image n'a pas Exif Orientation metadata
et par conséquent n'est pas retournée. Puisque je ne veux pas retourner l'image, j'ai essayé de régler le Exif property
manuellement en prenant une suggestion de ce post.
J'ai donc essayé de définir manuellement orientation.exif.primary.Orientation[0] = 1
dans mon code. Comme ceci:
from PIL import Image
import pexif
orientation = pexif.JpegFile.fromFile('image.JPG')
print("BEFORE:")
print(orientation.exif.primary.Orientation[0])
orientation.exif.primary.Orientation[0] = 1
print("AFTER:")
print(orientation.exif.primary.Orientation[0])
img = Image.open('image.JPG')
print(img.size)
Ceci corrige des impressions après APRÈS cependant, il ne définit pas réellement à 1 dans la vraie vie parce que quand je lance identify -verbose image.JPG | grep Orientation
encore, il montre encore . Alors, comment contourner ce problème et ne pas avoir la largeur et la hauteur de l'image inversée?