CBconvert is a Comic Book converter.
It can convert comics to different formats to fit your various devices.
See more screenshots.
- reads CBR (RAR), CBZ (ZIP), CB7 (7Z), CBT (TAR), PDF, XPS, EPUB, MOBI, DOCX, PPTX and plain directory
- saves processed files in ZIP archive format or TAR
- images can be converted to JPEG, PNG, TIFF, WEBP, AVIF, JXL, or 4-Bit BMP (16 colors) image format
- rotate, adjust brightness/contrast or grayscale images
- resize filters (NearestNeighbor, Box, Linear, MitchellNetravali, CatmullRom, Gaussian, Lanczos)
- export covers from comics
- create thumbnails from covers by FreeDesktop specification
Download the latest binaries from the releases.
Linux Flatpak is available at Flathub.
You must have CGO_ENABLED=1
. Note that Go
will disable cgo when cross-compiling.
Install to GOBIN
(you can point GOBIN
to e.g. /usr/local/bin
or ~/.local/bin
):
go install github.com/gen2brain/cbconvert/cmd/cbconvert@latest
For GUI app, check IUP requirements, and then install:
go install github.com/gen2brain/cbconvert/cmd/cbconvert-gui@latest
extlib
- use externallibmupdf
andlibunarr
librariespkgconfig
- enable pkg-config (used withextlib
)
Copy/install cbconvert
cli binary to your PATH
, create file ~/.local/share/thumbnailers/cbconvert.thumbnailer
and paste contents from thumbnailer.
This is what it looks like in the PCManFM
file manager:
Usage: cbconvert <command> [<flags>] [file1 dir1 ... fileOrDirN]
Commands:
convert
Convert archive or document
--width
Image width (default "0")
--height
Image height (default "0")
--fit
Best fit for required width and height (default "false")
--format
Image format, valid values are jpeg, png, tiff, bmp, webp, avif, jxl (default "jpeg")
--archive
Archive format, valid values are zip, tar (default "zip")
--quality
Image quality (default "75")
--filter
0=NearestNeighbor, 1=Box, 2=Linear, 3=MitchellNetravali, 4=CatmullRom, 6=Gaussian, 7=Lanczos (default "2")
--no-cover
Do not convert the cover image (default "false")
--no-rgb
Do not convert images that have RGB colorspace (default "false")
--no-nonimage
Remove non-image files from the archive (default "false")
--no-convert
Do not transform or convert images (default "false")
--grayscale
Convert images to grayscale (monochromatic) (default "false")
--rotate
Rotate images, valid values are 0, 90, 180, 270 (default "0")
--brightness
Adjust the brightness of the images, must be in the range (-100, 100) (default "0")
--contrast
Adjust the contrast of the images, must be in the range (-100, 100) (default "0")
--suffix
Add suffix to file basename (default "")
--outdir
Output directory (default ".")
--size
Process only files larger than size (in MB) (default "0")
--recursive
Process subdirectories recursively (default "false")
--quiet
Hide console output (default "false")
cover
Extract cover
--width
Image width (default "0")
--height
Image height (default "0")
--fit
Best fit for required width and height (default "false")
--format
Image format, valid values are jpeg, png, tiff, bmp, webp, avif (default "jpeg")
--quality
Image quality (default "75")
--filter
0=NearestNeighbor, 1=Box, 2=Linear, 3=MitchellNetravali, 4=CatmullRom, 6=Gaussian, 7=Lanczos (default "2")
--outdir
Output directory (default ".")
--size
Process only files larger than size (in MB) (default "0")
--recursive
Process subdirectories recursively (default "false")
--quiet
Hide console output (default "false")
thumbnail
Extract cover thumbnail (freedesktop spec.)
--width
Image width (default "0")
--height
Image height (default "0")
--fit
Best fit for required width and height (default "false")
--filter
0=NearestNeighbor, 1=Box, 2=Linear, 3=MitchellNetravali, 4=CatmullRom, 6=Gaussian, 7=Lanczos (default "2")
--outdir
Output directory (default ".")
--outfile
Output file (default "")
--size
Process only files larger than size (in MB) (default "0")
--recursive
Process subdirectories recursively (default "false")
--quiet
Hide console output (default "false")
meta
CBZ metadata
--cover
Print cover name (default "false")
--comment
Print zip comment (default "false")
--comment-body
Set zip comment (default "")
--file-add
Add file to archive (default "")
--file-remove
Remove file from archive (glob pattern, i.e. *.xml) (default "")
version
Print version
- Rescale images to 1200px for all supported files found in a directory with a size larger than 60MB:
cbconvert --recursive --width 1200 --size 60 /media/comics/Thorgal/
- Convert all images in pdf to 4bit BMP images and save the result in ~/comics directory:
cbconvert --format bmp --outdir ~/comics /media/comics/Garfield/Garfield_01.pdf
BMP format is a very good choice for black&white pages. Archive size can be smaller 2-3x and the file will be readable by comic readers.
- Extract covers to ~/covers dir for all supported files found in the directory, Lanczos algorithm is used for resizing:
cbconvert cover --outdir ~/covers --filter=7 /media/comics/GrooTheWanderer/
- Convert all images to AVIF format:
cbconvert --format avif --quality 50 --width 1280 --outdir ~/comics /media/comics/Misc/
This table maps quality settings for JPEG to the respective AVIF and WEBP quality settings:
JPEG quality | 50 | 60 | 70 | 80 |
AVIF quality | 48 | 51 | 56 | 64 |
WEBP quality | 55 | 64 | 72 | 82 |