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…

[openjudge] 2797最短前缀 Trie

描述 一个字符串的前缀是从该字符串的第一个字符起始的一个子串。例如 "carbon"的字串是: "c", "ca", "car", "carb", "carbo", 和 "carbon"。注意到这里我们不认为空串是字串, 但是每个非空串是它自身…

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…

Mysql实现幂等_MQ如何方式消息重复消费--幂等性

一、何为幂等性?其任意多次执行所产生的影响均与一次执行的影响相同从对系统的影响结果来说:At least once 幂等消费 Exactly once。那么如何实现幂等操作呢?最好的方式就是,从业务逻辑设计上入手,将消费的业务逻辑设…

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

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

JavaScript之正方教务系统自动化教评[插件-转载]

【声明】本插件系学院学长原创,非博主所创,发布此处,仅供学习和效仿。 /*** name:正方教务系统自动化教评-插件* * author:chenzhongshu* date:2017-07-04* notice:原生js;无需依赖项**/(function() {var courseCode;var timer;var autoFill …

预计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…

防止表单按钮多次提交

1. <form namefm method"POST" action"/"><p>按钮变灰</p>name: <input type"text" name"name"/><input type"button" value"提交" οnclick"javascript:{this.disabledtrue;doc…

理解进化的五座“桥”

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

ACM训练计划建议(转)

ACM训练计划建议 From&#xff1a;freecode# Date&#xff1a;2015/5/20 前言&#xff1a; 老师要我们整理一份训练计划给下一届的学弟学妹们&#xff0c;整理出来了&#xff0c;费了不少笔墨&#xff0c;就也将它放到博客园上供大家参考。 菜鸟之作&#xff0c;大牛勿喷&…

java下载文件夹_java如何通过共享目录下载文件夹(有子文件夹)到本地目录?...

有没有大神会操作的&#xff1f;下面的代码只能下载文件夹下只是文件的&#xff0c;不能下载文件夹下包含子文件夹的文件public static void getShareFile(){System.out.println("开始");NtlmPasswordAuthentication auth new NtlmPasswordAuthentication("192…

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

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

With you With me

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

java集合转字符串,Java集合将字符串转换为字符列表

I would like to convert the string containing abc to a list of characters and a hashset of characters. How can I do that in Java ?List charList new ArrayList("abc".toCharArray());解决方案You will have to either use a loop, or create a collectio…

Linux服务器iops性能测试-fio

FIO是测试IOPS的非常好的工具&#xff0c;用来对硬件进行压力测试和验证&#xff0c;支持13种不同的I/O引擎&#xff0c;包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet,guasi, solarisaio 等等。 fio 官网地址&#xff1a;http://freecode.com/proj…

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

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

java中位数_java 计算中位数方法

最近工作需要 要求把python的代码写成java版本&#xff0c;python中有一个np.median()求中位数的方法&#xff0c;java决定手写一个先说说什么是中位数&#xff1a;中位数就是中间的那个数&#xff0c;如果一个集合是奇数个&#xff0c;那么中位数就是按大小排列后&#xff0c;…

Unity 找到隐藏的UGUI

问题描述&#xff1a;在项目中需要在一开始将一个UGUI隐藏&#xff0c;之后在特定的时候再显示。 本来想的办法是在需要显示的时候调用GameObject.Find()找到这个UI并设置active&#xff0c; 但发现找出来的为null&#xff0c;经查阅资料发现GameObject.Find()只能find没有被隐…