使用Python提取JPEG图像文件dpi并计算物理尺寸

感谢浙江省浦江中学方春林老师提供的问题、测试图像和第一版本的代码!

下面的代码需要安装Python图像处理库pillow,由于不同公司对JPEG压缩算法和格式的实现不完全一样,有些类型的jpg文件暂时无法提取dpi信息,如果找到好的办法的话后期会再进行补充。

from os import listdir

from PIL import Image

from PIL.ExifTags import TAGS

def getPhysicalSize(fn):

    #打开图像文件并获取以像素为单位的尺寸

    im = Image.open(fn)

    width, height = im.size

    #尝试直接获取dpi信息

    try:

        dpi = im.info['dpi']

    except:

        #如果直接获取失败,再尝试获取exif信息

        t = {}

        info = im._getexif()

        #获取失败,直接返回

        if not info:

            return 'Not known'

        #从exif信息中提取水平分辨率和垂直分辨率

        for k, v in info.items():

            tt = TAGS.get(k)

            if tt in ('XResolution', 'YResolution'):

                t[tt] = v

        dpi = [item[1] for item in sorted(t.items())]

    #获取失败,返回

    if not dpi:

        return 'Not known'

    

    #不同压缩格式的文件信息保存方式不一样

    #适当转换一下

    if isinstance(dpi[0], tuple):

        w_dpi, h_dpi = dpi[0][0], dpi[1][0]

    else:

        w_dpi, h_dpi = dpi

    #返回物理尺寸信息,像素数/dpi分辨率,再换算成毫米    

    return (round(width/w_dpi*25.4,2), round(height/h_dpi*25.4,2))

for fn in (fns for fns in listdir('.') if fns.lower().endswith(('.jpg', '.jpeg'))):

    print(fn, ':', getPhysicalSize(fn))

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 云原生数据中台架构、方法论与实践是一本关于数据中台的书籍。数据中台是一种集成不同业务系统和数据源的平台,以满足用户需求并提高企业决策的能力。云原生数据中台则是以云原生技术为基础,使用微服务架构和容器化技术,实现高可用、高性能、高扩展性的数据中台。 本书分为三部分:架构原理、方法论和实践案例。架构原理部分介绍了云原生数据中台的建设思路和设计原则,包括微服务架构、DevOps、容器化等内容。方法论部分重点阐述数据中台建设中的核心概念和流程,如数据建模、数据采集、数据处理和数据服务等。实践案例部分则以企业实际案例为例,深入说明数据中台在实际场景中的应用和经验。 本书的特点在于将云原生技术和数据中台建设结合起来,提出了一种全新的数据中台建设思路和方法论。通过本书的学习,读者可以深入了解云原生技术和数据中台构建的最佳实践,以及如何将其应用于企业实践中,提高企业数据决策能力和竞争力。 总体来说,云原生数据中台架构、方法论与实践是一本非常实用的指南,适用于希望深入了解数据中台建设和云原生技术的从业人员,以及希望在企业实践中应用数据中台的决策者和管理人员。 ### 回答2: “云原生数据中台架构、方法论与实践”是一篇对云原生架构下的数据中台建设进行阐述和实践的论文。首先,文章介绍了传统数据中台的局限性,包括数据孤岛、数据质量差等问题。接着,作者提出了云原生数据中台架构的概念,强调了其具有智能、弹性、灵活性等特点。云原生数据中台的基本架构包括数据采集、数据存储、数据计算和数据服务等四个层级,详细介绍了各层级应用的技术和工具。在方法论方面,作者提出了“全时节奏、全参与、全数据价值驱动”三个关键点,强调了数据中台建设需要全员参与和全生命周期的考虑。最后,论文以某电商平台的实践案例为例,详细介绍了云原生数据中台在实践中的应用和效果。总的来说,“云原生数据中台架构、方法论与实践”为我们提供了一种全新的数据中台建设思路和方法,可以为企业提高数据价值和效率提供有力的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dongfuguo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值