美文网首页
使用pillow处理图片Exif旋转

使用pillow处理图片Exif旋转

作者: 愤愤的有痣青年 | 来源:发表于2021-09-07 10:09 被阅读0次

对于一些在电脑上看起来正常,但使用python的PIL.Image库打开却出现旋转的问题,可以根据exif中的Orientation 参数去进行调整,关于Orientation 参数说明见图片exif信息

如下是python代码

from PIL import Image, ExifTags

def convert_to_rgb(img: Image.Image):
    if hasattr(img, '_getexif'):
        exifs = img._getexif() or {}
        for exif, value in exifs.items():
            if ExifTags.TAGS.get(exif) == 'Orientation':
                if value == 2:
                    # 水平翻转
                    img = img.transpose(Image.FLIP_LEFT_RIGHT)
                elif value == 3:
                    logging.info('图像旋转 180 度')
                    img = img.rotate(180, expand=True)
                elif value == 4:
                    # 垂直翻转
                    img = img.transpose(Image.FLIP_TOP_BOTTOM)
                elif value == 5:
                    # 旋转270+水平翻转
                    img = img.rotate(270, expand=True)
                    img = img.transpose(Image.FLIP_LEFT_RIGHT)
                elif value == 6:
                    logging.info('图像旋转 270 度')
                    img = img.rotate(270, expand=True)
                elif value == 7:
                    # 旋转270+垂直翻转
                    img = img.rotate(270, expand=True)
                    img = img.transpose(Image.FLIP_TOP_BOTTOM)
                elif value == 8:
                    logging.info('图像旋转 90 度')
                    img = img.rotate(90, expand=True)
                break
    return img

相关文章

网友评论

      本文标题:使用pillow处理图片Exif旋转

      本文链接:https://www.haomeiwen.com/subject/advuwltx.html