把爬取的漫画(图片文件夹或压缩包)转换成 EPUB 电子书,自动识别黑白页转灰度以减小体积,画质尽量无感损失。内置华为 MatePad Paper 等设备预设,带图形界面。
- Python 3.10+
- Pillow:
pip install Pillow - (可选)解压
.rar/.cbr/.7z需要安装 7-Zip 或 WinRAR;.zip/.cbz无需任何额外软件
双击 启动界面.bat(或运行 python gui.py):
- 点「添加文件夹 / 添加压缩包」选择漫画(可一次加多个,批量转换)
- 设备预设默认就是「华为 MatePad Paper」,通常不用改
- 点「开始转换」,看进度条和日志即可
# MatePad Paper 优化(1872px + 全灰度), 推荐
python png2epub.py "D:\漫画\某本漫画" --device matepadpaper
# 压缩包 / 批量目录同样支持
python png2epub.py "D:\漫画\某本漫画.cbz" --device matepadpaper
python png2epub.py "D:\漫画\下载目录" --device matepadpaper -o "D:\电子书"| 预设 | 最大高度 | 质量 | 灰度 | 适用 |
|---|---|---|---|---|
matepadpaper |
1872 | 85 | 全部转灰度 | 华为 MatePad Paper(10.3 吋墨水屏 1872×1404,黑白屏,彩页留着也显示不出颜色,转灰度能省不少体积) |
tablet |
2400 | 90 | 自动检测 | iPad / 彩屏安卓平板 |
small |
1600 | 80 | 自动检测 | 小屏设备 / 追求最小体积 |
不用预设时默认:高度 1920、质量 85、黑白页自动检测转灰度(彩页保留彩色)。
| 选项 | 说明 |
|---|---|
--quality N |
JPEG/WebP 质量 1–100,90 以上基本无感差异 |
--max-height N |
页面最大高度(像素),0 表示不缩放 |
--grayscale |
所有页面强制转灰度(黑白墨水屏推荐) |
--format |
jpeg(默认)/ webp / png(无损)/ keep(不重压) |
--rtl |
从右往左翻页(日漫原版方向) |
--title / --author |
书名 / 作者元数据 |
显式传的参数优先级高于预设,例如 --device matepadpaper --quality 90。
- 子文件夹自动作为章节生成目录;文件名自然排序(
2.png在10.png之前)。 - 条漫长图(高宽比 > 2.5)按宽度缩放,不会被压扁。
- 某页重编码后反而变大时自动保留原图。
- MatePad Paper 上直接用系统阅读器打开 epub 即可;如果固定版式显示不佳,装个第三方阅读器(静读天下 Moon+ Reader、KOReader)效果更好。