当前位置 博文首页 > 老猿Python:用Python+PIL将目录下jpg图像批量转成pdf文件

    老猿Python:用Python+PIL将目录下jpg图像批量转成pdf文件

    作者:[db:作者] 时间:2021-08-19 15:53

    一、引言

    最近单位有个事,需要将一堆图片文件先转成pdf文件,同事下了个windows下的图形软件,但要一个个转,几百个jpg文件,太过麻烦,因此想用Python批量来做。一查,图像处理库PIL库可以支持,一试,花了半个小时搞定,在此分享一下。

    关于PIL库的安装和介绍,网上有比较多的文章,在这里就不做展开介绍。

    另外本文的文件处理机制都是基于windows系统的,如果是linux等需要进行对应调整。

    二、基本实现思路

    本文主要用到pil库的image模块,通过open方法打开图像,通过save另存一下,就实现了jpg转pdf,特简单。对应单个文件处理的函数实现如下:

    def jpg2pdf(jpgFile):
        path,fileName = jpgFile.rsplit('\\',1)
        preName,postName = fileName.rsplit('.',1)
    
        img = Image.open(jpgFile)
        return img.save(path+"\\"+preName+'.pdf', "PDF", resolution=100.0, save_all=True)
    

    有了单个文件处理机制,就只需要读取目录下的文件逐一处理即可,具体代码请见下面的完整代码。

    三、完整代码

    from PIL import Image
    import os
    
    
    def jpg2pdf(jpgFile):
        path,fileName = jpgFile.rsplit('\\',1)
        preName,postName = fileName.rsplit('.',1)
    
    
        img = Image.open(jpgFile)
        return img.save(path+"\\"+preName+'.pdf', "PDF", resolution=100.0, save_all=True)
    
    
    def jpg2pdfByPath(pathName):
        files = os.listdir(pathName)
        for f in files:
            if f.lower().find(".jpg")>0 :
    
                jpg2pdf(pathName+'\\'+f)
    
    jpg2pdfByPath(r'c:\img\jpg')
    

    四、小结

    本文介绍了通过PIL图像处理库,批量将jpg等图像文件转成pdf文件的方法,并提供了完整实现代码。上述方法不仅适用于jpg图像文件,也适用于所有pil支持的图像文件,不过关于图像文件的匹配要稍微调整下。

    更多图像处理请参考专栏《OpenCV-Python图形图像处理》及《图像处理基础知识》的介绍。

    对于缺乏Python基础的同仁,可以通过老猿的免费专栏《 专栏:Python基础教程目录》从零开始学习Python。

    写博不易,敬请支持:

    如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

    如对文章内容存在疑问,可在博客评论区留言,或通过扫描博客左边的二维码关注:老猿Python 微信公号发消息咨询。

    关于老猿的付费专栏

    1. 付费专栏《 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 使用PyQt开发图形界面Python应用专栏目录》;

    2. 付费专栏《 moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《moviepy音视频开发专栏文章目录》;

    3. 付费专栏《 OpenCV-Python初学者疑难问题集》为《 OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《 OpenCV-Python初学者疑难问题集专栏目录 》

    4. 付费专栏《Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。

    前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《 OpenCV-Python图形图像处理 》的学习使用。

    对于缺乏Python基础的同仁,可以通过老猿的免费专栏《 专栏:Python基础教程目录》从零开始学习Python。

    如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

    老猿Python,跟老猿学Python!

    ? ? 前往老猿Python博文目录 ?

    cs