Show HN: 使用 Kindle Comic Converter 优化 eInk 漫画(支持 Kobo/ReMarkable)

Kindle Comic Converter(简称 KCC)是一款漫画转换器,可以针对 Kindle、Kobo、ReMarkable 等电子阅读器进行优化。它能够让页面全屏显示,去除页边距,并支持固定的布局。其主要特点在于提供了多种可选的图像处理步骤,让漫画在 eInk 屏幕上呈现更好的效果,因为 eInk 屏幕与普通的 LCD 屏幕有不同的显示要求。此外,它还可以通过将图像缩小到特定设备的分辨率来优化文件大小,从而提高性能较弱的电子阅读器的运行速度。支持的输入格式包括包含 JPG/PNG 文件的文件夹/CBZ/CBR/PDF 等。支持的输出格式包括虚拟面板视图 MOBI/AZW3、EPUB、KEPUB 和 CBZ。

image

YouTube 教程(请订阅):https://www.youtube.com/watch?v=IR2Fhcm9658

警告

KCC 不是 Amazon's Kindle Comic Creator,也没有得到 Amazon 的任何认可。Amazon 的工具是为漫画出版商设计的,需要大量的人工操作,而 KCC 则是为漫画/漫画读者设计的。KC2 绝不是 KCC 的替代品,因此您可以完全相信我们将继续开发我们的小怪物 ;-)

问题/新功能/捐赠

如果您对使用方法、反馈等有任何疑问,请在此处发帖。如果您在使用 KCC 时遇到任何技术问题,请在此处提交 issue。如果您可以修复一个 open issue,请 fork 并提交 pull request。

如果您认为 KCC 有价值,您可以考虑向作者捐赠:

赞助商

下载

点击最新版本的 Assets。 您可能需要以下其中之一:

c2ec2p 版本是为高级用户提供的命令行工具。

在 Windows 11 上,您可能需要在兼容模式下运行旧版本的 Windows。 在 Mac 上,右键单击打开以绕过安全警告。 对于 flatpak、Docker 和 AppImage 版本,请参阅 wiki:https://github.com/ciromattia/kcc/wiki/Installation

常见问题解答

前提条件

您需要安装各种工具才能访问重要但可选的功能。关闭并重新打开 KCC,以使 KCC 检测到它们。

KindleGen

在 Windows 和 macOS 上,安装 Kindle Previewerkindlegen 将自动从其中检测到。 如果您在检测到它时遇到问题,卡在 MOBI 转换步骤中,或者使用 Linux AppImage 或 Flatpak,请参阅 wiki:https://github.com/ciromattia/kcc/wiki/Installation#kindlegen

7-Zip

这是可选的,但会使转换速度更快。 某些文件和高级功能需要此项。 如果需要,KCC 将提示您安装。 请参阅 wiki 安装:https://github.com/ciromattia/kcc/wiki/Installation#7-zip

输入格式

KCC 目前可以理解和转换以下输入类型:

用法

应该是不言自明的。所有选项在工具提示中都有详细信息。完成转换后,您应该在原始输入文件旁边找到准备好的文件(相同目录)。

请查看我们的 wiki 了解更多详细信息。

KCC 的 CLI 版本适用于高级用户。它允许使用可能不兼容的选项并降低输出质量。CLI 版本的依赖项较少,在基于 Debian 的发行版上,以下命令应安装所有必需的依赖项:

sudo apt-get install python3 p7zip-full python3-pil python3-psutil python3-slugify

配置文件:

    'K1': ("Kindle 1", (600, 670), Palette4, 1.8),
    'K11': ("Kindle 11", (1072, 1448), Palette16, 1.8),
    'K2': ("Kindle 2", (600, 670), Palette15, 1.8),
    'K34': ("Kindle Keyboard/Touch", (600, 800), Palette16, 1.8),
    'K578': ("Kindle", (600, 800), Palette16, 1.8),
    'KDX': ("Kindle DX/DXG", (824, 1000), Palette16, 1.8),
    'KPW': ("Kindle Paperwhite 1/2", (758, 1024), Palette16, 1.8),
    'KV': ("Kindle Paperwhite 3/4/Voyage/Oasis", (1072, 1448), Palette16, 1.8),
    'KPW5': ("Kindle Paperwhite 5/Signature Edition", (1236, 1648), Palette16, 1.8),
    'KO': ("Kindle Oasis 2/3/Paperwhite 12/Colorsoft 12", (1264, 1680), Palette16, 1.8),
    'KS': ("Kindle Scribe", (1860, 2480), Palette16, 1.8),
    'KoMT': ("Kobo Mini/Touch", (600, 800), Palette16, 1.8),
    'KoG': ("Kobo Glo", (768, 1024), Palette16, 1.8),
    'KoGHD': ("Kobo Glo HD", (1072, 1448), Palette16, 1.8),
    'KoA': ("Kobo Aura", (758, 1024), Palette16, 1.8),
    'KoAHD': ("Kobo Aura HD", (1080, 1440), Palette16, 1.8),
    'KoAH2O': ("Kobo Aura H2O", (1080, 1430), Palette16, 1.8),
    'KoAO': ("Kobo Aura ONE", (1404, 1872), Palette16, 1.8),
    'KoN': ("Kobo Nia", (758, 1024), Palette16, 1.8),
    'KoC': ("Kobo Clara HD/Kobo Clara 2E", (1072, 1448), Palette16, 1.8),
    'KoCC': ("Kobo Clara Colour", (1072, 1448), Palette16, 1.8),
    'KoL': ("Kobo Libra H2O/Kobo Libra 2", (1264, 1680), Palette16, 1.8),
    'KoLC': ("Kobo Libra Colour", (1264, 1680), Palette16, 1.8),
    'KoF': ("Kobo Forma", (1440, 1920), Palette16, 1.8),
    'KoS': ("Kobo Sage", (1440, 1920), Palette16, 1.8),
    'KoE': ("Kobo Elipsa", (1404, 1872), Palette16, 1.8),
    'Rmk1': ("reMarkable 1", (1404, 1872), Palette16, 1.8),
    'Rmk2': ("reMarkable 2", (1404, 1872), Palette16, 1.8),
    'RmkPP': ("reMarkable Paper Pro", (1620, 2160), Palette16, 1.8),
    'OTHER': ("Other", (0, 0), Palette16, 1.8),

独立 kcc-c2e.py 的用法:

usage: kcc-c2e [options] [input]
MANDATORY:
 input         Full path to comic folder or file(s) to be processed.
MAIN:
 -p PROFILE, --profile PROFILE
            Device profile (Available options: K1, K2, K34, K578, KDX, KPW, KPW5, KV, KO, K11, KS, KoMT, KoG, KoGHD, KoA, KoAHD, KoAH2O, KoAO, KoN, KoC, KoCC, KoL, KoLC, KoF, KoS, KoE)
            [Default=KV]
 -m, --manga-style   Manga style (right-to-left reading and splitting)
 -q, --hq       Try to increase the quality of magnification
 -2, --two-panel    Display two not four panels in Panel View mode
 -w, --webtoon     Webtoon processing mode
 --ts TARGETSIZE, --targetsize TARGETSIZE
            the maximal size of output file in MB. [Default=100MB for webtoon and 400MB for others]
PROCESSING:
 -n, --noprocessing  Do not modify image and ignore any profil or processing option
 -u, --upscale     Resize images smaller than device's resolution
 -s, --stretch     Stretch images to device's resolution
 -r SPLITTER, --splitter SPLITTER
            Double page parsing mode. 0: Split 1: Rotate 2: Both [Default=0]
 -g GAMMA, --gamma GAMMA
            Apply gamma correction to linearize the image [Default=Auto]
 -c CROPPING, --cropping CROPPING
            Set cropping mode. 0: Disabled 1: Margins 2: Margins + page numbers [Default=2]
 --cp CROPPINGP, --croppingpower CROPPINGP
            Set cropping power [Default=1.0]
 --preservemargin   After calculating crop, "back up" a specified percentage amount [Default=0]
 --cm CROPPINGM, --croppingminimum CROPPINGM
            Set cropping minimum area ratio [Default=0.0]
 --ipc INTERPANELCROP, --interpanelcrop INTERPANELCROP
            Crop empty sections. 0: Disabled 1: Horizontally 2: Both [Default=0]
 --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
 --mozjpeg       Create JPEG files using mozJpeg
 --maximizestrips   Turn 1x4 strips to 2x2 strips
 -d, --delete     Delete source file(s) or a directory. It's not recoverable.
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]
 -a AUTHOR, --author AUTHOR
            Author name [Default=KCC]
 -f FORMAT, --format FORMAT
            Output format (Available options: Auto, MOBI, EPUB, CBZ, KFX, MOBI+EPUB) [Default=Auto]
 --nokepub       If format is EPUB, output file with '.epub' extension rather than '.kepub.epub'
 -b BATCHSPLIT, --batchsplit BATCHSPLIT
            Split output into multiple files. 0: Don't split 1: Automatic mode 2: Consider every subdirectory as separate volume [Default=0]
 --spreadshift     Shift first page to opposite side in landscape for two page spread alignment
 --norotate      Do not rotate double page spreads in spread splitter option.
 --reducerainbow    Reduce rainbow effect on color eink by slightly blurring images
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

独立 kcc-c2p.py 的用法:

usage: kcc-c2p [options] [input]
MANDATORY:
 input         Full path to comic folder(s) to be processed. Separate multiple inputs with spaces.
MAIN:
 -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 split image
 -h, --help      Show this help message and exit

从源代码安装

本节适用于想要为 KCC 做出贡献的开发人员,或者想要运行最新代码而无需等待官方版本的超级用户。

最简单的方法是使用 GitHub Desktop 克隆 KCC 存储库。在 GitHub Desktop 中,单击工具栏中的 Repository,然后单击 Command Prompt (Windows)/Terminal (Mac) 以在 KCC 存储库中打开一个窗口。

根据您的系统,Python 可能被称为 pythonpython3。我们使用虚拟环境 (venv) 来管理依赖项。

如果您想编辑代码,一个好的代码编辑器是 VS Code

如果您想编辑 .ui 文件,请使用 Qt Creator,它包含在 Qt for desktop development 中。然后使用 gen_ui_files 脚本自动生成 python UI。

这是一个添加新复选框的 PR 示例:#785

不要使用 git merge 从上游合并 master,使用 GitHub 上分支中 fork 上的“Sync fork”按钮,以避免在 pull request 中出现怪异的合并。

从源代码安装 Windows

首次设置和运行:

python -m venv venv
venv\Scripts\activate.bat
pip install -r requirements.txt
python kcc.py

每次关闭命令提示符时,您都需要重新激活虚拟环境并重新运行:

venv\Scripts\activate.bat
python kcc.py

您可以使用以下命令构建像我们提供的下载文件一样的 KCC .exe

python setup.py build_binary

从源代码安装 macOS

首次设置和运行:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python kcc.py

每次关闭终端时,您都需要重新激活虚拟环境并重新运行:

source venv/bin/activate
python kcc.py

您可以使用以下命令构建像我们提供的下载文件一样的 KCC .app

python setup.py build_binary

致谢

KCC 由以下人员制作:

此脚本是 Dc5eKindleComicParser 的跨平台替代品(发布在此处)。

该应用程序依赖并包含以下脚本:

KCC 创建的示例文件

隐私

KCC 在两种情况下启动互联网连接:

已知问题

请查看wiki 页面

版权

版权所有 (c) 2012-2025 Ciro Mattia Gonano, Paweł Jastrzębski, Darodi 和 Alex Xu。KCC 根据 ISC LICENSE 发布;有关更多详细信息,请参见 LICENSE.txt