Home
Softono

Ebook Imgzip

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

 About Ebook Imgzip

EPUB/PDF 图片提取工具

Platforms

Web Self-hosted

Languages

Python

Links

Need Help Installing Ebook Imgzip?

We provide expert installation service for this software. Our team will install, configure, and secure Ebook Imgzip on your server. plans start at just $30.

Ebook Imgzip

View on GitHub

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