python海龟图画龙珠_火影,海贼王,七龙珠,还在为漫画书发愁!我用Python一键生成电子漫画书...

456a8476eae7

小时候看漫画都是要买书的,一本好几块钱,成本那个高啊后来可以在线看漫画,感觉真是爽

456a8476eae7

不过近几年新的问题又出现了:漫画网站广告太多,更重要的是越来越多的作品、章节出于各种原因被下架、限制观看。为了提升观看体验,我通常会把漫画打包下载到本地。

01.素材准备

说起漫画的下载,途径可是非常的多,最直接的是使用一些漫画下载器去下载网站上的在线漫画;有兴致的朋友也可以自己写漫画爬虫,Github上也有很多类似的爬虫项目可以直接拿来用;实在不行就到一些专门的漫画下载网站打包下载。下图就是我最近下载的漫画图片。

456a8476eae7

关于漫画图片的获取不是本文的重点,这里想说的是,通过以上途径获取到的散图,放到电脑上看还行,但是如果要在手机上观看,大量图片的管理多少有些麻烦,图片从电脑端到手机端的传输也存在问题。所以就想到写一个python脚本,自动把大批量的图片按照章节(文件夹)分类合并为一个pdf文件,这样一来无论是传输还是观看都方便多了。

456a8476eae7

02.实战开始

此处的基本思路是先把每张图片转化成单张的pdf,然后把属于同一章节的pdf进行合并。图片转化为pdf使用的是reportlab库,多个pdf合并使用的则是PyPDF2库,这两个库都是可以直接使用pip来安装的,这里不再赘述。

1).图片转pdf

reportlab库中有个pdfgen.canvas包,能够新建指定大小的空白pdf,还能把图片绘制到这张pdf中。那么我们就可以使用PIL库读入一幅图片,获取图片的尺寸,然后建立相同大小的空白pdf文件,最后将这张图绘制到新建的pdf中。代码如下:

456a8476eae7

其中datapath是原图所在路径,ficFile是原图片文件,新生成的pdf文件还是存储在原图目录中,下图就是转化后的pdf效果:

456a8476eae7

2).pdf合并

pdf的合并需要用到PyPDF2包中的PdfFileMerger函数,来看下面这段代码:

456a8476eae7

其中,get_files是自定义函数,用来获取指定目录下的特定后缀的文件列表(这里我们获取所有的pdf文件);之后新建一个PdfFileMerger()对象,将获取到的所有单张pdf依次添加进来,实现多个pdf文件的合并,最后将合并后的pdf文件保存并输出到python脚本的同一目录。

3).文件管理

上面实现的只是一些基本的功能函数,要让程序顺利跑起来还需加入一些文件管理的代码。以我新下载的YQDQ这部漫画为例,这本漫画共13本,每一本的漫画图片都存储在自己的目录中,如图:

456a8476eae7

我们需要做的是,依次访问每一个文件夹,将其下的所有图片转化为pdf然后合并,生成的pdf文件以各文件夹名称进行命名,并存储到根目录中。其实这些逻辑有一部分在上面的代码中已经有所体现,我们来看主函数的代码:

456a8476eae7

关于get_files函数我们之前也提到过,这里一并放出函数代码和脚本引用的包,这样一来该脚本的所有代码就完整了,大家可以放心使用。

456a8476eae7

456a8476eae7

03.总结一下

运行脚本,最终好耗时24秒,生成了204M大小的13个pdf文件,如图:

456a8476eae7

目前wx搜索Python 【菜鸟学Python】排第二,汇聚了30万Python爱好者,累计原创近400篇趣味干货(爬虫,数据分析,算法,面试指南,原创趣味实战,Python游戏,机器学习),欢迎一起学Python,交流指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487957.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌自揭“家丑”:医疗AI实验室表现超神,临床结果却不佳

来源:澎湃新闻在医疗领域,尤其是在医学影像筛查过程中,人工智能常被描述为完美的工作者。它们能准确识别疾病,拥有人类专家级的发现能力,还不知疲倦。但与许多技术一样,在实验室取得成功是一回事&#xff0…

mysql 移植ucos_基于STM32F767的UCOSIII移植学习

(一)移植前的准备1.HAL库基本工程模板新建一个工程模块,其中包含LED驱动和串口驱动程序即可,用于验证UCOS-III系统能够正常工作。2.UCOS-III源码准备去Micrium官网下载最新的UCOSIII源码,下载地址:Micrium官网下载地址&#xff0c…

美国5G到底怎么了?

来源:网优雇佣军美国司法部长威廉巴尔(William Barr)在2月6日应华盛顿智库“战略与国际研究中心”(CSIS, Center for Strategic & International Studies)邀请,参加了“中国倡议”会议(Chin…

SQL实践篇(一):使用WebSQL在H5中存储一个本地数据库

文章目录 简介本地存储都有哪些?如何使用WebSQL打开数据库事务操作SQL执行 在浏览器端做一个英雄的查询页面如何删除本地存储参考文献 简介 WebSQL是一种操作本地数据库的网页API接口,通过它,我们可以操作客户端的本地存储。 WebSQL曾经是H…

预计2024年之前载人登月!NASA授予马斯克贝索斯公司大单

来源:小小据外媒报道,当地时间周四,美国宇航局(NASA)宣布选中埃隆马斯克(Elon Musk)旗下美国太空探索技术公司SpaceX、杰夫贝索斯(Jeff Bezos)的蓝色起源公司(Blue Origin)和Dynetics为其设计和建造月球着陆系统&#…

java 遗传算法_[原]遗传算法Java实现源代码

【Title】[原]遗传算法Java实现源代码【Date】2013-04-07【Abstract】以前学习遗传算法时,用Java实现的遗传算法程序,现整理分享出来。【Keywords】wintys、遗传、算法、algorithm、种群、基因、个体、进化、染色体、适应度、Rosenbrock【Environment】W…

理解进化的五座“桥”

来源:原理古往今来,达尔文是不是最具革命性的科学家之一?如果革命指的是把一个已经公认的学说颠倒过来,那挑战者还有很多,至少包括牛顿、爱因斯坦和量子力学的奠基者。这些物理学家超群绝伦的智慧能量,可能…

【AI】【机器人】AI与机器人的42个终极问题与解答

来源:产业智能官 未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图…

With you With me

With you With me 回来了,一起从零开始... 据说每一个敢说从零开始的都特么是个大牛(for example hiphop-Man欧阳靖)... 这些年的时间多有自己问自己,你特么到底在迷茫什么,想不通就去撞墙啊!!…

志澄观察:卫星互联网——太空经济新动力

图1 卫星互联网的组成来源:远望智库 引 言2020年04月20日国家发改委首次明确,将卫星互联网列入我国新型基础设施的范围,这项重大的战略决策,大大鼓舞了我国商业航天行业的信心。另一方面,2020年3月27日,在发展低…

一文读懂电磁学发展史[图文版]

来源:电子万花筒电磁学或称电动力学或经典电动力学。之所以称为经典,是因为它不包括现代的量子电动力学的内容。电动力学这样一个术语使用并不是非常严格,有时它也用来指电磁学中去除了静电学、静磁学后剩下的部分,是指电磁学与力…

人机智能既不是人类智能,也不是人工智能

来源:人机与认知实验室从前,一个教授,去一个穷乡僻壤里头坐船过江,就问船上的船工:你学点数学没有?没有。你学点物理没有?没有。那懂不懂计算机啊?不懂。教授感叹这三样都不会&#…

赛博朋克之后的科幻建筑是什么样的?

来源:苇草智酷粗略地浏览一下 tumblr 或 Pinterest 论坛的兴趣推送,你会发现我最近痴迷于科幻作品美学。更具体地说,我一直在想,在过去35年甚至更久时间里流行的设计美学——赛博朋克(Cyberpunk)之后&#…

牛客网java_牛客网java

1:下列代码运行的结果是什么?public classP {public static int abc 123;static{System.out.println("P is init");}}public class S extendsP {static{System.out.println("S is init");}}public classTest {public static voidma…

AMD 和 Intel 之战:CPU 哪家强?

来源:嵌入式资讯精选作者 | Paul Alcorn译者 | 弯月,责编 | 郭芮以下为译文:不论是选游戏CPU还是桌面应用的CPU,我们只有两种选择:AMD或者英特尔。两家都有各自的粉丝,所以想买CPU的人很难获得中肯的建议&a…

issubclass在python中的意思_python基础之类的isinstance与issubclass、反射

一 isinstance(obj,cls)和issubclass(sub,super)isinstance(obj,cls)检查是否obj是否是类 cls 的对象class Foo:passobj Foo()print(isinstance(obj,Foo))issubclass(sub, super)检查sub类是否是 super 类的派生类class Foo:passclass Bar(Foo):passprint(issubclass(Bar,Foo)…

华为的汽车芯片布局

来源:电子发烧友综合报道,内容参考自雷锋网、IT之家、CnBeat,转载请注明以上来源由于政策扶持,新能源汽车发展迅速,华为也开始进军新能源汽车市场,最近动作频繁,例如联合意法半导体研发汽车芯片…

大热下的 GNN 研究面临哪些“天花板”?未来的重点研究方向又在哪?

作为脱胎于图论研究的热门研究领域,图神经网络(GNN)与经典的 WL 算法有诸多相似之处。众所周知,强大的 WL 算法对于聚合函数的单射性质有很强的要求,那么强大的 GNN 应该具备哪些性质呢?研究大热下&#xf…

java将一个对象赋值给另一个对象_java一个对象赋值给另一个对象,支持平铺类和层级类间的互转...

场景:将一个层级类对象(领域驱动model对象)转换为平铺类对象(view)src对象,(红框为子对象)target对象(平铺对象)代码思路,先递归反射遍历出所有字段,存到一个map里,再递归赋值给target对象缺陷:不同子对象间…

新基建的内涵、意义和隐忧 ,基于互联网大脑模型的分析

2020年4月20日上午,国家发改委召开4月份例行新闻发布会,首次就“新基建”概念和内涵作出正式的解释。“新型基础设施是以新发展理念为引领,以技术创新为驱动,以信息网络为基础,面向高质量发展需要,提供数字…