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

老猿Python

共 1362字,需浏览 3分钟

 ·

2021-08-03 22:39

一、引言

最近单位有个事,需要将一堆图片文件先转成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 Imageimport 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。


浏览 89
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报