gen2brain / cbconvert

CBconvert is a Comic Book converter
GNU General Public License v3.0
215 stars 13 forks source link

CBconvert

Introduction

CBconvert is a Comic Book converter.

It can convert comics to different formats to fit your various devices.

screenshot

See more screenshots.

Features

Download

Download the latest binaries from the releases.

Linux Flatpak is available at Flathub.

Compile

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

Build tags

Using cbconvert in file managers to generate FreeDesktop thumbnails

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:

thumbnails

Using command line app

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

Examples

cbconvert --recursive --width 1200 --size 60 /media/comics/Thorgal/

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.

cbconvert cover --outdir ~/covers --filter=7 /media/comics/GrooTheWanderer/

cbconvert --format avif --quality 50 --width 1280 --outdir ~/comics /media/comics/Misc/

Quality settings

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