Skip to content

moshev/kcc

 
 

Repository files navigation

KCC

Kindle Comic Converter is a Python app to convert comic files or folders to ePub, Panel View MOBI or E-Ink optimized CBZ. It was initally developed for Kindle but since v2.2 it outputs valid ePub 2.0 so despite its name, KCC is actually a comic to EPUB converter that every e-reader owner can happily use. It can also optionally optimize images by applying a number of transformations.

A word of warning

KCC is not Amazon's Kindle Comic Creator nor is in any way endorsed by Amazon.
Amazon's tool is for comic publishers and involves a lot of manual effort, while KCC is for comic readers. KC2 in no way is a replacement for KCC so you can be quite confident we'll going to carry on developing our little monster ;-)

Issues / new features / donations

If you have general questions about usage, feedback etc. please post it here. If you have some technical problems using KCC please file an issue here. If you can fix an open issue, fork & make a pull request.
If you want more chances an issue is fixes or your wanted feature added, consider placing a bounty!

If you find KCC valuable you can consider donating to the authors:

  • Ciro Mattia Gonano: Donate Flattr this
  • Paweł Jastrzębski: Donate 1W15wwqsfd7wbaZ6wvSJf1LW1bz6q5L8b 1W15wwqsfd7wbaZ6wvSJf1LW1bz6q5L8b

BINARY RELEASES

You can find the latest released binary at the following links:

INPUT FORMATS

KCC can understand and convert, at the moment, the following input types:

  • Folders containing: PNG, JPG, GIF, TIFF or BMP files
  • CBZ, ZIP
  • CBR, RAR (With unrar executable)
  • CB7, 7Z (With 7za executable)
  • PDF (Extracting only contained JPG images)

OPTIONAL REQUIREMENTS

  • KindleGen v2.9+ in a directory reachable by your PATH or in KCC directory (For MOBI generation)
  • UnRAR (For CBR/RAR support)
  • 7za (For 7z/CB7 support)

For running from source:

On Debian based distributions these two commands should install all dependencies:

sudo apt-get install python3 python3-dev python3-pip python3-pyqt5 libtiff-dev libpng-dev libjpeg-dev p7zip-full unrar
sudo pip3 install pillow python-slugify psutil

For freezing code:

USAGE

Should be pretty self-explanatory. All options have detailed informations in tooltips. After completed conversion you should find ready file alongside the original input file (same directory).

Please check our wiki for more details.

Standalone comic2ebook.py usage:

Usage: comic2ebook.py [options] comic_file|comic_folder

Options:
  MAIN:
    -p PROFILE, --profile=PROFILE
                        Device profile (Choose one among K1, K2, K345, KDX, KHD, KF, KFHD, KFHD8, KFHDX, KFHDX8, KFA, KoMT, KoG, KoA, KoAHD) [Default=KHD]
    -q QUALITY, --quality=QUALITY
                        Quality of Panel View. 0 - Normal 1 - High 2 - Ultra [Default=0]
    -m, --manga-style   Manga style (Right-to-left reading and splitting)
    -w, --webtoon       Webtoon processing mode

  OUTPUT SETTINGS:
    -o OUTPUT, --output=OUTPUT
                        Output generated file to specified directory or file
    -t TITLE, --title=TITLE
                        Comic title [Default=filename or directory name]
    --cbz-output        Outputs a CBZ archive and does not generate EPUB
    --batchsplit        Split output into multiple files

  PROCESSING:
    --blackborders      Disable autodetection and force black borders
    --whiteborders      Disable autodetection and force white borders
    --forcecolor        Don't convert images to grayscale
    --forcepng          Create PNG files instead JPEG
    --gamma=GAMMA       Apply gamma correction to linearize the image [Default=Auto]
    --nocutpagenumbers  Don't try to cut page numbering on images
    --noprocessing      Don't apply image preprocessing
    --nosplitrotate     Disable splitting and rotation
    --rotate            Rotate landscape pages instead of splitting them
    --stretch           Stretch images to device's resolution
    --upscale           Resize images smaller than device's resolution

  CUSTOM PROFILE:
    --customwidth=CUSTOMWIDTH
                        Replace screen width provided by device profile
    --customheight=CUSTOMHEIGHT
                        Replace screen height provided by device profile

  OTHER:
    -h, --help          Show this help message and exit

Standalone comic2panel.py usage:

Usage: comic2panel.py [options] comic_folder

Options:
  MANDATORY:
    -y HEIGHT, --height=HEIGHT
                        Height of the target device screen
    -i, --in-place      Overwrite source directory
    -m, --merge         Combine every directory into a single image before splitting

  OTHER:
    -d, --debug         Create debug file for every splitted image
    -h, --help          Show this help message and exit

CREDITS

KCC is made by Ciro Mattia Gonano and Paweł Jastrzębski

This script born as a cross-platform alternative to KindleComicParser by Dc5e (published here)

The app relies and includes the following scripts/binaries:

  • KindleUnpack script by Charles M. Hannum, P. Durrant, K. Hendricks, S. Siebert, fandrieu, DiapDealer, nickredding. Released with GPLv3 License.
  • rarfile.py script © 2005-2011 Marko Kreen markokr@gmail.com. Released with ISC License.
  • image.py class from Alex Yatskov's Mangle with subsequent proDOOMman's and Birua's patches.
  • Icon is by Nikolay Verin (http://ncrow.deviantart.com/) and released under CC BY-NC-SA 3.0 License.

SAMPLE FILES CREATED BY KCC

CHANGELOG

####1.0

  • Initial version

####1.1

  • Added support for CBZ/CBR files in comic2ebook.py

####1.1.1

  • Added support for CBZ/CBR files in Kindle Comic Converter

####1.2

  • Comic optimizations! Split pages not target-oriented (landscape with portrait target or portrait with landscape target), add palette and other image optimizations from Mangle. WARNING: PIL is required for all image mangling!

####1.3

  • Fixed an issue in OPF generation for device resolution
  • Reworked options system (call with -h option to get the inline help)

####1.4

  • Added some options for controlling image optimization
  • Further optimization (ImageOps, page numbering cut, autocontrast)

####1.4.1

  • Fixed a serious bug on resizing when img ratio was bigger than device one

####1.5

  • Added subfolder support for multiple chapters.

####2.0

  • GUI! AppleScript is gone and Tk is used to provide cross-platform GUI support.

####2.1

  • Added basic error reporting

####2.2:

  • Added (valid!) ePub 2.0 output
  • Rename .zip files to .cbz to avoid overwriting

####2.3

  • Fixed win32 ePub generation, folder handling, filenames with spaces and subfolders

####2.4

  • Use temporary directory as workdir (fixes converting from external volumes and zipfiles renaming)
  • Fixed "add folders" from GUI.

####2.5

  • Added --black-borders option to set added borders black when page's ratio is not the device's one (#11).
  • Fixes epub containing zipped itself (#10)

####2.6

  • Added --rotate option to rotate landscape images instead of splitting them (#16, #24)
  • Added --output option to customize ePub output dir/file (#22)
  • Add rendition:layout and rendition:orientation ePub meta tags (supported by new kindlegen 2.8)
  • Fixed natural sorting for files (#18)

####2.7

  • Lots of GUI improvements (#27, #13)
  • Added gamma support within --gamma option (defaults to profile-specified gamma) (#26, #27)
  • Added --nodithering option to prevent dithering optimizations (#27)
  • Epub margins support (#30)
  • Fixed no file added if file has no spaces on Windows (#25)
  • Gracefully exit if unrar missing (#15)
  • Do not call kindlegen if source epub is bigger than 320MB (#17)
  • Get filetype from magic number (#14)
  • PDF conversion works again

####2.8

  • Updated rarfile library
  • Panel View support + HQ support (#36) - new option: --nopanelviewhq
  • Split profiles for K4NT and K4T
  • Rewrite of Landscape Mode support (huge readability improvement for KPW)
  • Upscale use now BILINEAR method
  • Added generic CSS file
  • Optimized archive extraction for zip/rar files (#40)

####2.9

  • Added support for generating a plain CBZ (skipping all the EPUB/Mobi generation) (#45)
  • Prevent output file overwriting the source one: if a duplicate name is detected, append _kcc to the name
  • Rarfile library updated to 2.6
  • Added GIF, TIFF and BMP to supported formats (#42)
  • Filenames slugifications (#28, #31, #9, #8)

####2.10:

  • Multiprocessing support
  • Kindle Fire support (color ePub/Mobi)
  • Panel View support for horizontal content
  • Fixed panel order for horizontal pages when --rotate is enabled
  • Disabled cropping and page number cutting for blank pages
  • Fixed some slugify issues with specific file naming conventions (#50, #51)

####3.0:

  • New QT GUI
  • Merge with AWKCC
  • Added ultra quality mode
  • Added support for custom width/height
  • Added option to disable color conversion

####3.1:

  • Added profile: Kindle for Android
  • Add file/directory dialogs now support multiselect
  • Many small fixes and tweaks

####3.2:

  • Too big EPUB files are now splitted before conversion to MOBI
  • Added experimental parser of manga webtoons
  • Improved error handling

####3.2.1:

  • Hotfixed crash occurring on OS with Russian locale

####3.3:

  • Margins are now automatically omitted in Panel View mode
  • Margin color fill is now autodetected
  • Created MOBI files are not longer marked as Personal on newer Kindle models
  • Layout of panels in Panel View mode is now automatically adjusted to content
  • Fixed Kindle 2/DX/DXG profiles - no more blank pages
  • All Kindle Fire profiles now support hiqh quality Panel View
  • Added support of 7z/CB7 files
  • Added Kindle Fire HDX profile
  • Support for Virtual Panel View was removed
  • Profiles for Kindle Keyboard, Touch and Non-Touch are now merged
  • Windows release is now bundled with UnRAR and 7za
  • Small GUI tweaks

####3.4:

  • Improved PNG output
  • Increased quality of upscaling
  • Added support of file association - KCC can now open CBZ, CBR, CB7, ZIP, RAR, 7Z and PDF files directly
  • Paths that contain UTF-8 characters are now supported
  • Migrated to new version of Pillow library
  • Merged DX and DXG profiles
  • Many other minor bug fixes and GUI tweaks

####3.5:

  • Added simple content server - Converted files can be now delivered wireless
  • Added proper Windows installer
  • Improved multiprocessing speed
  • GUI tweaks and minor bug fixes

####3.6:

  • Increased quality of Panel View zoom
  • Creation of multipart MOBI output is now faster on machines with 4GB+ RAM
  • Automatic gamma correction now distinguishes color and grayscale images
  • Added ComicRack metadata parser
  • Implemented new method to detect border color in non-webtoon comics
  • Upscaling is now enabled by default for Kindle Fire HD/HDX
  • Windows nad Linux releases now have tray icon
  • Fixed Kindle Fire HDX 7" output
  • Increased target resolution for Kindle DX/DXG CBZ output

####3.6.1:

  • Fixed PNG output

####3.6.2:

  • Fixed previous PNG output fix
  • Fixed Panel View anomalies

####3.7:

  • Added profiles for KOBO devices
  • Improved Panel View support
  • Improved WebToon splitter
  • Improved margin color autodetection
  • Tweaked EPUB output
  • Fixed stretching option
  • GUI tweaks and minor bugfixes

####3.7.1:

  • Hotfixed Kobo profiles

####3.7.2:

  • Fixed problems with HQ mode

####4.0:

  • KCC now use Python 3.3 and Qt 5.2
  • Full UTF-8 awareness
  • CBZ output now support Manga mode
  • Improved Panel View support and margin color detection
  • Added drag&drop support
  • Output directory can be now selected
  • Windows release now have auto-updater
  • Names of chapters on Kindle should be now more user friendly
  • Fixed OSX file association support
  • Many extensive internal changes and tweaks

KNOWN ISSUES

Please check wiki page.

COPYRIGHT

Copyright (c) 2012-2014 Ciro Mattia Gonano and Paweł Jastrzębski. KCC is released under ISC LICENSE; see LICENSE.txt for further details.

About

KCC (a.k.a. Kindle Comic Converter) is a comic and manga converter for ebook readers.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.9%
  • Shell 0.1%