用Python+PIL将目录下jpg图像批量转成pdf文件
一、引言
最近单位有个事,需要将一堆图片文件先转成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(rc:imgjpg)
四、小结
本文介绍了通过PIL图像处理库,批量将jpg等图像文件转成pdf文件的方法,并提供了完整实现代码。上述方法不仅适用于jpg图像文件,也适用于所有pil支持的图像文件,不过关于图像文件的匹配要稍微调整下。
更多图像处理请参考专栏《》及《》的介绍。
对于缺乏Python基础的同仁,可以通过老猿的免费专栏《》从零开始学习Python。
写博不易,敬请支持:
关于老猿的付费专栏
- 付费专栏《专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 》;
- 付费专栏《)详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《》;
- 付费专栏《》为《》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《》
前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《》的学习使用。
对于缺乏Python基础的同仁,可以通过老猿的免费专栏《》从零开始学习Python。
如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。