Home
Softono
ebook-imgzip

ebook-imgzip

Open source MIT Python
12
Stars
1
Forks
0
Issues
0
Watchers
7 months
Last Commit

About ebook-imgzip

EPUB/PDF 图片提取工具

Platforms

Web Self-hosted

Languages

Python

Links

EBook 图片提取工具

本工具用于批量提取 EPUB/PDF 文件中的图片内容,并将其打包为 ZIP 文件。支持跳过漫画类 EPUB(pre-paginated 类型)、并发处理、多目录扫描、自定义输出路径等功能,适用于图像型电子书(如漫画、插图小说、写真集等)的图像整理与归档


📦 功能简介

  • ✅ 支持批量扫描 EPUB/PDF 文件并提取图片
  • ✅ 自动跳过漫画类 EPUB(可选)
  • ✅ 自动忽略图片比例过低的 EPUB/PDF
  • ✅ PDF 空白页检测并自动跳过
  • ✅ 保留 EPUB 中的图片目录结构
  • ✅ 根据页面标题自动命名提取出的图片
  • ✅ 支持并发提取,显著加快处理速度
  • ✅ 支持输出目录自定义
  • ✅ 支持提取成功后自动删除原始文件(可选)

📦 环境要求

  • Python 3.7+
  • 安装依赖:pip install PyMuPDF

🔧 使用方式

命令行执行

python ebook_imgzip.py -d 输入目录 [可选参数]

参数说明:

参数 说明
-d, --dir 指定包含 EPUB/PDF 文件的目录
-o, --output-dir 输出 ZIP 文件的目录,留空则与 EPUB/PDF 同目录
--no-skip-manga 不跳过漫画类 EPUB(默认跳过)
--delete-source 提取成功后删除原始 EPUB/PDF 文件
-w, --workers 最大并发线程数(默认自动设定)

示例:

# 提取 ./books 目录中所有 EPUB/PDF 中的图片到 ./output 目录,使用 8 个线程,不跳过漫画,提取后删除源文件
python ebook_imgzip.py -d ./books -o ./output --no-skip-manga --delete-source -w 8

交互模式(可选):

你也可以只运行脚本,系统会提示输入参数:

python epub_imgzip.py

🖼️ 命名规则

提取出的图片文件将根据 HTML 页面标题或文件名进行命名,使用如下格式:

0001_页面标题.jpg
0002_页面标题.jpg
...
  • 封面命名为 0000_封面.jpg
  • 若无法提取标题,则使用文件名或序号生成占位标题

🚫 自动跳过规则

以下情况的 EPUB 文件将被跳过提取:

  • EPUB 为漫画类(rendition:layout = pre-paginated)
  • EPUB 内图片文件比例低于 30%
  • EPUB 内部没有图片文件

📁 输出结构示例

如果使用 --output-dir ./output 进行处理,输出结构将与原始目录结构保持一致:

./output/
├── 漫画1.zip
├── 漫画2.zip
└── 子目录/
    └── 漫画3.zip

否则将输出到 EPUB/PDF 同一目录下


📝 许可协议

MIT License - 可自由使用、修改和分发


🙋‍♀️ 反馈建议

如使用过程中遇到任何问题或希望添加新功能,欢迎提交 Issue