Пока CSS: не image-orientation:from-image;
будет поддерживаться повсеместно, мы делаем серверное решение с помощью python. Вот его суть. Вы проверяете ориентацию данных exif, затем соответствующим образом поворачиваете изображение и повторно сохраняете.
Мы предпочитаем это решение решениям на стороне клиента, поскольку оно не требует загрузки дополнительных библиотек на стороне клиента, и эта операция должна выполняться только один раз при загрузке файла.
if fileType == "image":
exifToolCommand = "exiftool -j '%s'" % filePath
exif = json.loads(subprocess.check_output(shlex.split(exifToolCommand), stderr=subprocess.PIPE))
if 'Orientation' in exif[0]:
findDegrees, = re.compile("([0-9]+)").search(exif[0]['Orientation']).groups()
if findDegrees:
rotateDegrees = int(findDegrees)
if 'CW' in exif[0]['Orientation'] and 'CCW' not in exif[0]['Orientation']:
rotateDegrees = rotateDegrees * -1
img = Image.open(filePath)
img2 = img.rotate(rotateDegrees)
img2.save(filePath)