python批量旋转裁剪图片实战
python批量旋转裁剪图片实战
引子
有一本PDF电子书,由扫描的图片生成的,每页的截图看起来如下图:
它是展开扫描的,两页并列在一张图片上。并且每页又是分两栏,这样的PDF在手机、平板上,需要放大阅读,不停地左右移动,非常不便。
就想到将PDF导出为图像文件,将每张图片分割为两张,再合成为PDF,这样阅读起来就舒服多了。
导出PDF为图像后,发现图像又是这样的:
有两个方法:
- 一是 在 PS 中创建一个动作,对图片进行旋转、裁剪、新建、粘贴、另存为操作,再对得到的图片重命名;不断重复这个过程。
- 二是 学 python 的,用 python 对导出的图片进行批量操作,“自动化办公”。
第一种方法非常枯燥、费时。
python 人的思路
- 使用 python PIL 库;
- 创建一个
CropImg.py
模块,存储全部代码; - 定义一个函数
def get_path_list(root_dir):
,获取原照片保存目录下的全部照片的完整文件名,保存到一个列表中,函数返回这个列表; - 定义一个方法
def rotate_crop(input_img, out_img):
,遍历列表中的每张照片,打开照片、旋转照片、将照片一分为二、分别重命名保存到指定目录中。 - 小程序的结构如下图:
效果
运行CropImg.py
,几分钟即完成了几百页图片的处理,结果非常满意。
学习 python,自动化处理一些重复的办公任务,其乐无穷!
完整的代码可以到 Python草堂QQ群 457079928 下载。有问题和更好的想法也可以到草堂来讨论!
python批量旋转裁剪图片实战相关推荐
- jQuery 缩放 旋转 裁剪图片 Image Cropper
A simple jQuery image cropping plugin. Demo cropper是一款使用简单且功能强大的图片剪裁jQuery插件.该图片剪裁插件支持图片放大缩小,支持图片旋转, ...
- Python批量重命名图片
Python批量重命名图片 # -*- coding:utf8 -*-import osclass BatchRename():'''批量重命名文件夹中的图片文件'''def __init__(sel ...
- 使用Python批量旋转,镜像图片
前言 当我们进行大量图像处理时,经常需要旋转或镜像图像.但一张张处理图片费神又费力,有什么好的办法可以帮助我们快速搞定这个问题呢?这时候我们可以写个简单的python程序来搞定它!~ 在Python中 ...
- python下载网页里面所有的图片-Python批量下载网页图片详细教程
很多朋友在网上查找批量下载图片的方法~发觉挺凌乱的,无从下手.这里绿茶小编就来跟大家分享下使用Python批量下载图片方法. 目标:爬取某个网站上n多页的链接,每个链接有n多张图片,每一页对应一个文件 ...
- Python批量删除错误图片、修改文件名以及删除重复图片
一.批量删除错误图片: 代码如下: import osfor name in range(1,150):with open('C:\\Users\\adimin\\Desktop\\Pixiv_Img ...
- python pdf删除图片_【原创】python批量删除pdf图片水印(Xobject)的一种方法
1.说明: 下载到的pdf总会有一些水印,pdf文件水印添加方式除了acrobat adobe自带的以外,还有很多,所以去除水印方法也很多,这里介绍的也只是一种适用python批量删除图片水印Xobj ...
- 【超实用】python批量ppt转图片,pdf转图片,word转图片脚本,直接拿去用
前言 某天我们运营在编辑后台的时候说每次上传ppt,pdf,word时都要把每个文件先导出一次图片,然后一个一个上传(png用作预览,ppt,pdf,word源文件不能直接下载的,要付费),说效率太低 ...
- python批量下载必应图片
梗概:我是个化验师,我们可是也要我们做PPT,医学知识往往繁多复杂,要是有比较好的照片配合文字,可以大大增加PPT的效果.必应这个网站可以搜索到比较有价值的医学图片,要是你输入一个医学名词,同样的搜索 ...
- 用IDM 和 python 批量下载webp图片
今天遇到了一个新的需求.网站上有许多webp图片,直接打开它,拒绝访问,浏览器打开也403,一看就是被保护了.写了python批量来下也失败.最后用IDM试一下,居然可以下载.但是一个一个下载太麻烦了 ...
最新文章
- css3毛玻璃模糊效果
- MyBatis 3 – Spring集成教程
- 路透社:谷歌已停止与华为部分合作;联想否认断供华为PC;微软计划直供Linux内核;谷歌无人机快递Wing进军芬兰……...
- 百度云盘云知梦php_教你搭建私有云盘,简单快速,完全傻瓜式!不限速,永久有效!...
- 吃货阶段03 需求 实现我要下单的功能 0927
- python爬虫bs4_Python爬虫系列-Xpath自如和bs4链家
- 字节跳动联邦学习平台通过中国信通院首批评估 数据安全能力得到专业验证
- Facebook开源多款AI工具,支持游戏、翻译
- Beyond Compare 4常用配置
- k3c路由怎么设置虚拟服务器,搭建ngrok服务器!!给k3.k3c.K2.k2p路由器使用!!详细教程!!!...
- 示波器在Multisim仿真中如何看信号周期频率
- 路由守卫(全局钩子(全局路由守卫)、路由单独钩子(router独享守卫))
- boost::lexical_cast 学习小记
- CINTA作业一:加减乘除
- APS生产计划排程系统介绍-FLEXSCHE-真正解决复杂需求的灵活且强大的通用系统
- 为什么计算机要更新,为什么要关闭windows 10更新理由详解
- Rviz显示机器人运动轨迹
- 《读者》的“卷首语” (二)
- 多表操作-外键级联操作
- Trackback, Pingback , Backlink与博客
热门文章
- 探探人脸识别自动右滑1.0版本(附代码)
- 赛门铁克整合Altiris推端点安全管理平台
- json对齐行尾的注释 - 在vscode格式化
- 苹果home键在哪里设置_苹果屏幕上的home键在哪里设置出来
- 如何做 APP 安装测试 ?
- oppor9的计算机符号,OPPO R9怎么关闭手机按键灯和显示运营商标志 OPPO R9关闭手机按键灯和显示运营商标...
- 这回轮到阿里云了。。
- Java线程属性详解(Demo-Java基础)
- PDF文档怎么新建空白页面的方法
- 计算机主板外频,计算机外频的相关概念