Skip to content

CrazyOldWizard/ImageSetToCBZ

Repository files navigation

ImageSetToCBZ

A cross-platform .NET 10 console tool that packages image folders into CBZ archives. Supports single-folder, batch, and structure-mirroring modes with an interactive wizard for no-argument usage.

Wizard main menu


Features

  • Single mode — converts one image folder into a .cbz file
  • Batch mode — converts every subfolder of a directory into its own .cbz file
  • Mirror mode — batch converts recursively and mirrors the full folder structure in the output
  • Interactive wizard — run with no arguments to get a guided step-by-step menu
  • Page renaming — optionally rename archive entries to page_01.jpg, page_02.jpg, …
  • Prepend string — prefix every output filename (e.g. Vol.1 Chapter 01.cbz)
  • Compression control — choose NoCompression (default), Fastest, Optimal, or SmallestSize
  • Overwrite control — existing CBZ files are skipped by default; pass --overwrite to replace them
  • Log file — writes a timestamped .log file alongside the output after each run (opt-out with --no-log)
  • Colored output with progress bars and spinners powered by Spectre.Console

Supported image formats

.jpg .jpeg .png .gif .webp .bmp .tiff .tif .avif


Requirements


Installation

Download the latest release for your platform from the Releases page, or build from source (see below).


Usage

Wizard mode (no arguments)

Running the executable with no arguments launches an interactive wizard:

ImageSetToCBZ

The wizard walks you through all options and returns to the main menu after each conversion completes.

CLI mode

ImageSetToCBZ <input> [options]
Argument / Option Description
<input> Path to the directory containing images (or subdirectories in batch mode)
-b, --batch Process all subdirectories of <input> as individual CBZ files
-m, --mirror Recursively process all nested subdirectories and mirror the folder structure in --output. Requires --batch and --output
-p, --prepend <value> String to prepend to each output CBZ filename (e.g. "Vol.1")
-o, --output <path> Directory to write CBZ files to. Defaults to placing each CBZ next to its source folder
-c, --compression <level> NoCompression (default), Fastest, Optimal, SmallestSize
--no-log Skip creating a log file of the conversion results
-r, --rename-pages Rename images inside the CBZ to page_01, page_02, … (off by default)
--overwrite Overwrite existing CBZ files (off by default — existing files are skipped)

Examples

Convert a single folder:

ImageSetToCBZ "path/to/images"

Batch convert all subfolders:

ImageSetToCBZ "path/to/comics" --batch

Batch convert with a prepended volume label:

ImageSetToCBZ "path/to/comics" --batch --prepend "Vol.1"

Batch convert to a specific output directory:

ImageSetToCBZ "path/to/comics" --batch --output "path/to/output"

Mirror a nested folder structure into an output directory:

ImageSetToCBZ "path/to/comics" --batch --mirror --output "path/to/output"

Convert and rename pages inside each CBZ:

ImageSetToCBZ "path/to/images" --rename-pages

Re-run and overwrite previously created CBZ files:

ImageSetToCBZ "path/to/comics" --batch --overwrite

Output & logging

By default, a log file is written to the output directory after each run:

ImageSetToCBZ_20250101_120000.log

It contains a per-file result (OK, SKIP, FAIL) and a summary of how many files were created, skipped, and failed. Pass --no-log to suppress it.


Building from source

git clone https://github.com/CrazyOldWizard/ImageSetToCBZ.git
cd ImageSetToCBZ
dotnet build

To publish a self-contained executable for your platform:

dotnet publish -c Release -r win-x64 --self-contained
dotnet publish -c Release -r linux-x64 --self-contained
dotnet publish -c Release -r osx-x64 --self-contained

Dependencies

Packages

 
 
 

Contributors

Languages