把一堆漫画散图变成一本能在阅读器里顺畅翻页的漫画,看似只是”压个包”,实际有三个坑几乎人人会踩:页序乱、方向反、书名不显示。这三件事都不是阅读器的 bug,而是打包时没把 CBZ 格式的几个约定处理对。本文把 CBZ 是什么、为什么会乱、怎么根治讲清楚。
CBZ 是什么:一个改了名的 ZIP
CBZ = Comic Book ZIP,本质就是一个装着漫画图片的普通 ZIP 压缩包,只把扩展名从 .zip 改成 .cbz。阅读器打开时,把包里的图片按文件名排序、逐张当作一页显示。
海贼王_第1卷.cbz (本质是 ZIP)
├── 001.jpg ← 第 1 页
├── 002.jpg ← 第 2 页
├── 003.jpg ← 第 3 页
├── ...
└── ComicInfo.xml ← 元数据(可选):书名 / 作者 / 方向
正因为它就是 ZIP,.cbz ↔ .zip 改扩展名可以互相打开,不需要任何转换。
漫画常见格式怎么选
| 格式 | 外壳 | 谁在用 | 什么时候用 |
|---|---|---|---|
| CBZ | ZIP | 几乎所有漫画阅读器 | 首选,通用、可新建、无授权问题 |
| CBR | RAR | 老资源常见 | 能读别新建——RAR 打包需授权 |
| CB7 | 7z | 少数 | 压缩比高但兼容性差,不推荐 |
| 通用文档 | 要打印 / 发给不装阅读器的人 | ||
| EPUB | ZIP+XHTML | 图文书 | 带文字重排的图文,不适合纯漫画 |
一句话:新建漫画包就用 CBZ;CBR 只读不建。
坑一:页序为什么乱成 1、10、11、2
这是最高频的问题。阅读器默认按文件名的字典序决定翻页顺序,而字典序是”逐个字符比大小”,不是按数字大小。
文件名:1.jpg 2.jpg ... 10.jpg 11.jpg
字典序比较第一个字符:'1' < '2'
→ 所有以 '1' 开头的(1, 10, 11, 12…)都排在 '2' 前面
→ 实际顺序:1, 10, 11, 12, ..., 2, 20, 21, ..., 3, ...
根治:补零对齐位数
把所有页码补到相同位数,字典序就重新等于数字序:
| 原名 | 字典序结果 | 补零后 | 字典序结果 |
|---|---|---|---|
| 1.jpg | 1 | 001.jpg | 1 ✅ |
| 2.jpg | 10 ❌ | 002.jpg | 2 ✅ |
| 10.jpg | 11 ❌ | 010.jpg | 10 ✅ |
| 11.jpg | 2 ❌ | 011.jpg | 11 ✅ |
本工具的**“重命名为顺序编号”**开关就是把页面统一改成 001、002… 位数按总页数自动决定(100 页内补 3 位、1000 页内补 4 位)。强烈建议开启——这是从根上避免乱序的唯一可靠办法,比事后在每个阅读器里手动调省心得多。
工具首次导入时还会做一次自然排序(把”第 2 话”排在”第 10 话”前),得到大多数情况下正确的初始顺序,你再微调即可。
坑二:日漫方向翻反了
日本漫画从右往左读,但翻页方向不写在图片里,而是靠元数据告诉阅读器。如果不标记,阅读器默认从左往右,日漫就会翻反、双页拼版的左右也会颠倒。
标准做法是在 ComicInfo.xml 里写 Manga 字段:
| Manga 取值 | 含义 |
|---|---|
No | 从左往右(欧美漫画、国漫、默认) |
Yes | 是漫画,方向不指定 |
YesAndRightToLeft | 日漫,从右往左翻 |
本工具选”从右往左(日漫)“就会写入 YesAndRightToLeft,支持的阅读器(Tachiyomi、Komga、Kavita、ComicRack、Perfect Viewer)读到后自动切右翻。
坑三:书名不显示 —— ComicInfo.xml 的作用
ComicInfo.xml 放在包根目录,是 ComicRack 首创、如今被各大阅读器采纳的事实标准元数据文件。本工具生成的样例:
<?xml version="1.0" encoding="utf-8"?>
<ComicInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Title>海贼王 第 1 卷</Title>
<Series>海贼王</Series>
<Number>1</Number>
<Writer>尾田荣一郎</Writer>
<Penciller>尾田荣一郎</Penciller>
<PageCount>195</PageCount>
<Manga>YesAndRightToLeft</Manga>
</ComicInfo>
| 字段 | 作用 |
|---|---|
Title / Series | 书库里显示的书名 / 归入哪个系列 |
Number | 卷号 / 话号,用于系列内排序 |
Writer / Penciller | 作者,可按作者筛选 |
PageCount | 总页数 |
Manga | 翻页方向(见上表) |
加不加? 纯图片阅读器(Perfect Viewer 直接开文件)不加也能翻;但 Komga / Kavita 这类书库靠它建立书名、系列、方向,进书库强烈建议加。不需要时可关掉,只打包纯图片。
关于压缩:为什么用 STORE 不用 DEFLATE
漫画图片(JPG/PNG/WebP)本身已经是压缩格式,高熵数据几乎没有冗余可压。再套一层 ZIP 的 DEFLATE:
- 体积只减小 不到 2%;
- 打包时间却成倍增加(还要逐字节尝试压缩)。
所以 CBZ 的通行做法(也是本工具的做法)是 STORE —— 只把图片打包在一起、不再压缩:画质零损失、速度快,体积等于原图之和。真要减小体积,应该在打包前用图片压缩把每页降到合适质量,而不是指望 ZIP。
阅读器导入速查
| 阅读器 | 平台 | 导入方式 |
|---|---|---|
| Tachiyomi / Mihon | Android | 装 Local source,.cbz 放 Tachiyomi/local/<漫画名>/ 下刷新 |
| Komga | 自建服务器 / NAS | 放进书库目录,每系列一文件夹、每卷一 .cbz,自动扫描 |
| Kavita | 自建服务器 / NAS | 同上,读 ComicInfo.xml 建库 |
| Perfect Viewer | Android | 直接打开 .cbz 文件 |
| YACReader / CDisplayEx | Windows / Mac | 双击打开 .cbz |
实务清单
- 页序:优先靠正确命名的源文件 + 补零重命名,别指望事后手调;
- 方向:日漫务必选右翻,否则读起来别扭;
- 格式:彩页 / 扫描用 JPG,黑白线稿用 PNG,追求小体积用 WebP(注意老阅读器兼容);
- 减重:先压图再打包,CBZ 本身不压缩;
- 书库:进 Komga/Kavita 一定填书名 + 卷号 + 写 ComicInfo.xml,方便归类;
- 反向需求:要把漫画转成能打印的 PDF,用 图片转 PDF;打包前给漫画减重用 图片压缩;只是想把一堆文件压成普通 ZIP 用 ZIP 打包。
做好这几点,一个拖进阅读器就顺序正确、方向正确、书名齐全的 CBZ 就完成了。