![renovate[bot]](/assets/img/avatar_default.png)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
CBZOptimizer
CBZOptimizer is a Go-based tool designed to optimize CBZ (Comic Book Zip) and CBR (Comic Book RAR) files by converting images to a specified format and quality. This tool is useful for reducing the size of comic book archives while maintaining acceptable image quality.
Note: CBR files are supported as input but are always converted to CBZ format for output.
Features
- Convert images within CBZ and CBR files to different formats (e.g., WebP).
- Support for multiple archive formats including CBZ and CBR (CBR files are converted to CBZ format).
- Adjust the quality of the converted images.
- Process multiple chapters in parallel.
- Option to override the original files (CBR files are converted to CBZ and original CBR is deleted).
- Watch a folder for new CBZ/CBR files and optimize them automatically.
Installation
- Clone the repository:
git clone https://github.com/belphemur/CBZOptimizer.git
cd CBZOptimizer
- Install dependencies:
go mod tidy
Usage
Command Line Interface
The tool provides CLI commands to optimize and watch CBZ/CBR files. Below are examples of how to use them:
Optimize Command
Optimize all CBZ/CBR files in a folder recursively:
go run main.go optimize [folder] --quality 85 --parallelism 2 --override --format webp --split
Watch Command
Watch a folder for new CBZ/CBR files and optimize them automatically:
go run main.go watch [folder] --quality 85 --override --format webp --split
Flags
--quality
,-q
: Quality for conversion (0-100). Default is 85.--parallelism
,-n
: Number of chapters to convert in parallel. Default is 2.--override
,-o
: Override the original files. For CBZ files, overwrites the original. For CBR files, deletes the original CBR and creates a new CBZ. Default is false.--split
,-s
: Split long pages into smaller chunks. Default is false.--format
,-f
: Format to convert the images to (e.g., webp). Default is webp.
Testing
To run the tests, use the following command:
go test ./... -v
Requirement
Needs to have libwep installed on the machine if you're not using the docker image
Docker
ghcr.io/belphemur/cbzoptimizer:latest
GitHub Actions
The project includes a GitHub Actions workflow to run tests on every push and pull request to the main
branch. The workflow is defined in .github/workflows/go.yml
.
Contributing
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Commit your changes (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Create a new Pull Request.
License
This project is licensed under the MIT License. See the LICENSE
file for details.