Python 使用PIL读取图像自动旋转exif信息

Python 使用PIL读取图像自动旋转exif信息

今天遇到一个图片存在自动旋转的问题,也就是图像exif 字段不为空的问题,写个简单脚本记录一下。

Python3实现:

import traceback
import PIL
from PIL import Image, ImageOps


def image_transpose(img_path):
    """
    :param img_path: 图像路径
    :return: pil对象
    """

    try:
        # print(PIL.ExifTags.TAGS)  # 获取exif 所以标签 是个字典

        image = Image.open(img_path)  # 读取图像
        exif_data = image._getexif()  # 获取exif信息

        if exif_data and exif_data.get(274):
            orientation = exif_data.get(274)
            if orientation == 3:
                print('image rotate 180 度')
                image.rotate(180, expand=True)
                return image
            elif orientation == 6:
                print('image rotate 270 度')
                image.rotate(270, expand=True)
                return image
            elif orientation == 8:
                print('image rotate 90 度')
                image.rotate(90, expand=True)
                return image
        else:
            print('正常图片')
            return image

        trans_pose_image = ImageOps.exif_transpose(image)  # 也可以采用 这种方式 进行矫正
        return trans_pose_image  # 返回矫正后的图像
    except:
        print(traceback.print_exc())
        return None  # 异常情况反回空


if __name__ == '__main__':
    img_path = 'test1.jpg'
    print(image_transpose(img_path))

相关参考:
[1]Python Image._getexif方法代码示例

声明: 总结学习,有问题或不当之处,可以批评指正哦,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值