用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 osdef 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 微信公号发消息咨询。
关于老猿的付费专栏
付费专栏《 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 使用PyQt开发图形界面Python应用专栏目录》;
付费专栏《 moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《moviepy音视频开发专栏文章目录》;
付费专栏《 OpenCV-Python初学者疑难问题集》为《 OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《 OpenCV-Python初学者疑难问题集专栏目录 》
付费专栏《Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。
前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《 OpenCV-Python图形图像处理 》的学习使用。
对于缺乏Python基础的同仁,可以通过老猿的免费专栏《 专栏:Python基础教程目录》从零开始学习Python。
如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。
老猿Python,跟老猿学Python!
☞ ░ 前往老猿Python博文目录 ░
用Python+PIL将目录下jpg图像批量转成pdf文件相关推荐
- Python编程:使用wkhtmltopdf将html网页转成pdf文件
官网:https://wkhtmltopdf.org/ github: https://github.com/wkhtmltopdf/wkhtmltopdf Mac环境: brew install C ...
- 【Python】comtypes模块Windows环境下使用批量转换成PDF文件
最近在微信看到一篇文章介绍说批量将ppt文件转化为pdf文件,自己尝试了一下,后面想能否自己封装一个类,既能将ppt转换为pdf,而且能够将word转换为pdf,或者其他类型转化为pdf.花了半天时间 ...
- python操作图片批量保存成PDF文件
有个脚本需求: 就是把一个一个图片获取下来,并把图片拼接成一个PDF文档. 代码如下: # -*- coding: utf-8 -*- """ Created on Mo ...
- python 根据word生成ppt_未明学院:利用Python将Wordamp;PPT批量转成PDF
Python中的许多库,像一个个具有不同功能的"工具",能帮助我们解决工作中的不同问题,提高工作效率! 本期将继续为大家放松python中的实用技能,本期的主题是:利用Python ...
- 利用txt索引图像路径或直接对目录下的图像进行逐一测试
1. 利用txt索引图像路径进行逐一测试 import os from PIL import Image VOCdevkit_path = 'VOCdevkit' image_ids=open(os ...
- python打开一个文件夹下所有txt文件-python读取一个目录下所有txt里面的内容方法...
实例如下所示: import os allFileNum = 0 def printPath(level, path): global allFileNum ''''' 打印一个目录下的所有文件夹和文 ...
- python怎么导入txt文件夹-python读取一个目录下所有txt里面的内容方法
实例如下所示: import os allFileNum = 0 def printPath(level, path): global allFileNum ''''' 打印一个目录下的所有文件夹和文 ...
- python之获取目录下的文件名
背景:为了统计一个目录下所有文件名,并且写到文件中 工具:python的模块os.walk 功能:遍历目录下的所有子文件及其子文件夹,如果有子文件夹的话,会继续以子文件夹为目录递归遍历 返回:如果只有 ...
- python 找出图片中的差异点,python opencv对目录下图片进行去重的技巧
使用python opencv对目录下图片进行去重的方法 版本: 平台:ubuntu 14 / I5 / 4G内存 python版本:python2.7 opencv版本:2.13.4 依赖: 如果系 ...
最新文章
- linux 内存泄露工具,linux下检查内存泄露的工具--mtrace
- vue 圆形百分比进度条_vue实用组件——圆环百分比进度条
- 《面向模式的软件体系结构1--模式系统》读书笔记(5)--- 管理
- 中国呼吸道防护劳保用品市场投资效益与销售前景调研报告2022年
- java rtmp m3u8_vue常用插件之视频播放(rtmp m3u8)
- moviepy报错之 .This error can be due to the fact that ImageMagick is not installed on your computer(亲测)
- 环网工业交换机ERPS技术解析
- docker配置容器运行jar包
- LeetCode 6038. 向表达式添加括号后的最小结果
- Android 系统(92)---诊断原生代码崩溃问题
- AndroidStudio_开发工具调试入门---Android原生开发工作笔记70
- @+保留关键字当标识
- python中循环结构break_Python编程10:跳出循环结构之break和continue
- Shell命令学习笔记
- MATLAB与SPSS接口
- 李雅普诺夫指数 matlab,Matlab画Lorenz系统的最大李雅普诺夫指数图
- ShuffleNet
- ignite安装与启动
- VScode绘制波形图
- 2021-2022-1 20212810《Linux内核原理与分析》第一周作业
热门文章
- PHP中的CURL采集方法,直接可拿来用.
- 使用Echarts饼图时将图例图标变成圆形
- 2.配置git环境与项目创建
- Science:海马中如何实现选择性地招募神经元来巩固记忆?
- Python学习笔记(十):注释
- 网络设备怎么升级?(交换机、路由器等升级步骤)
- 关于解决Referenced file contains errors (http://www.springframework.org/schema/beans/spring-beans-4.3.xs
- C语言单链表实现栈(stack)数据结构
- django学习笔记- oneday
- centOS7下 安装nodejs+nginx+mongodb+pm2部署vue项目