Skip to content

Small application to optimize images (and cover) inside epub files

License

Notifications You must be signed in to change notification settings

Jabbo16/epub-image-optimizer

Repository files navigation

epub-image-optimizer

GitHub Workflow Status PyPI PyPI - Python Version codecov DeepSource GitHub

Small Python CLI application to optimize images (including the cover) inside epub files. Perfect fit for optimizing LNs as they usually have a lot of images.

Installation

From PyPI directly:

pip install epub-image-optimizer

or

python3 -m pip install epub-image-optimizer

Usage

Usage: epub-image-optimizer [OPTIONS]

  EPUB Image Optimization tool

Options:
  --input-dir DIRECTORY           Input folder
  --output-dir DIRECTORY          Output folder
  --input-file FILE               Path to Epub Input file
  --max-image-resolution <INTEGER INTEGER>...
                                  Fit image resolution to this values, good
                                  for handling images with higher
                                  resolutions than your ebook-reader
  --tinify-api-key TEXT           Tinify api-key
  --only-cover                    Optimize only the cover image, ignoring all
                                  other images
  --workers INTEGER               Number of threaded workers to use, default
                                  is 'cpu count + 4'
  --keep-color                    If this flag is present images will preserve
                                  colors (not converted to BW)
  --log-level [INFO|DEBUG|WARN|ERROR]
                                  Set log level, default is 'INFO'
  --version                       Show current version
  --help                          Show this message and exit.

Examples

Convert all images to BW

epub-image-optimizer --input-file <my-epub>

Convert only cover to BW

epub-image-optimizer --input-file <my-epub> --only-cover

Optimize all images while keeping colors

epub-image-optimizer --input-file <my-epub> --keep-color

Note: At the moment this won't do anything as there is currently no optimization if not using Tinify.

Optimize all images using Tinify while keeping colors

epub-image-optimizer --input-file <my-epub> --keep-color --tinify-api-key <tinify-api-key>

Note: You can obtain your Tinify API Key here. Free tier is limited to 500 images/month.

Optimize and fit all images to custom resolution while keeping colors

epub-image-optimizer --input-dir <folder> --max-image-resolution 1680 1264 --tinify-api-key <tinify-api-key>

Note: This will optimize all epubs inside input-dir folder, used my Kobo Libra H2O screen size as example.