Kemas Kini Terakhir: 28 Julai, 2026

TL;DR CBZ (Comic Book Zip) tidak lebih daripada arkib ZIP standard yang menggabungkan satu siri fail imej berurutan—ditambah metadata pilihan—ke dalam satu bekas komik tanpa DRM. Oleh kerana ia bergantung pada format ZIP yang meluas, sebarang alat arkib boleh membukanya, dan pembaca hanya menyusun imej mengikut abjad untuk memaparkan halaman mengikut susunan. CBZ moden sering menyertakan ComicInfo.xml untuk data perpustakaan yang kaya, menggunakan codec imej cekap seperti WebP/AVIF, dan bahkan menyematkan HTML untuk komik “dipertingkatkan” interaktif.
Apakah Sebenarnya CBZ?
- Nama: Comic Book Zip – fail ZIP dengan sambungan
.cbz. - Jenis MIME:
application/vnd.comicbook+zip(didaftarkan dengan IANA pada 2012). - Asal: Dipopularkan oleh komuniti ComicRack (2005‑2008) sebagai alternatif sumber terbuka kepada format proprietari seperti CBR atau PDF.
- Rentas‑platform: Boleh dibuka dengan sebarang utiliti yang serasi ZIP (7‑Zip, WinRAR, macOS Archive Utility, Linux
unzip). Tiada perisian khas diperlukan untuk memeriksa kandungan.
Secara praktikal, CBZ hanyalah sebuah folder gambar (JPEG, PNG, WebP, dll.) yang dimampatkan dan dinamakan semula. Kesederhanaan itu menjadikannya standard de‑facto untuk komik digital pada PC, tablet, dan telefon.
Di Dalam CBZ: Struktur Fail
CBZ yang terbentuk dengan baik mengikuti hierarki rata—tiada penyusunan tambahan—supaya pembaca dapat mencari halaman dengan serta-merta. Di bawah ialah paparan pokok tipikal:
MyComic.cbz
│
├─ 001.jpg ← first page (front cover)
├─ 002.jpg
├─ 003.jpg
│ …
├─ 050.jpg ← last page (back cover)
├─ ComicInfo.xml ← optional rich metadata
└─ cover.jpg ← optional thumbnail for library views
Elemen Utama
| Elemen | Apa Ia | Mengapa Ia Penting |
|---|---|---|
| Fail gambar berurutan | Dinamakan supaya mereka disusun mengikut abjad (001.jpg, 002.jpg, …) | Menjamin susunan halaman yang betul pada setiap pembaca. |
| Format imej | JPEG, PNG, GIF, WebP, AVIF, BMP, TIFF | Menentukan saiz fail, ketepatan visual, dan keserasian peranti. |
| ComicInfo.xml | XML pilihan mengikut skema ComicRack | Menyimpan tajuk, pengarang, siri, nombor isu, bahasa, bendera jenis‑halaman, dan bahkan data gambar kecil. Membolehkan pengurusan perpustakaan yang kuat. |
| Imej kulit | cover.jpg/cover.png di akar | Digunakan oleh banyak aplikasi sebagai gambar kecil komik dalam galeri. |
| Nama fail Unicode | ZIP moden menyokong UTF‑8 | Penting untuk tajuk bukan Latin dan komik antarabangsa. |
| Direktori pusat ZIP | Indeks di akhir arkib | Pembaca membaca ini untuk membina senarai halaman dengan cepat; kerosakan di sini boleh memecahkan keseluruhan CBZ. |
Kerana arkib hanya memampatkan imej yang sudah dimampatkan, saiz akhir biasanya hanya jumlah fail asal ditambah beberapa kilobait beban ZIP (< 5 %).
Keajaiban Metadata: ComicInfo.xml dan Bendera Jenis Halaman
Walaupun CBZ berfungsi dengan sempurna tanpa sebarang fail tambahan, menambah ComicInfo.xml menjadikan susunan imej ringkas menjadi komik yang boleh dicari, dengan penerangan yang kaya. Berikut ialah contoh minimum:
<?xml version="1.0" encoding="utf-8"?>
<ComicInfo>
<Title>Starship Voyager</Title>
<Series>Space Adventures</Series>
<Number>12</Number>
<Writer>Jane Doe</Writer>
<Penciller>John Smith</Penciller>
<Inker>Alex Lee</Inker>
<Publisher>Galaxy Press</Publisher>
<Year>2024</Year>
<LanguageISO>en</LanguageISO>
<PageCount>50</PageCount>
<Pages>
<Page Image="001.jpg" Type="FrontCover"/>
<Page Image="002.jpg" Type="Story"/>
<Page Image="025.jpg" Type="DoublePage"/>
<Page Image="050.jpg" Type="BackCover"/>
</Pages>
</ComicInfo>
Kenapa perlu?
- Alat perpustakaan (ComicRack, Calibre, dll.) boleh menyusun, menapis, dan mencari berdasarkan medan ini.
- Bendera jenis halaman (
FrontCover,BackCover,Advert,Deleted, dll.) membolehkan pembaca menyembunyikan iklan, hanya memaparkan halaman cerita, atau memaparkan gambar kecil kulit muka yang khusus. - Masa depan yang tahan – Sebagai Inisiatif Komik Digital sedang merangka spesifikasi CBZ v2.0, fail manifes (
manifest.json) mungkin menjadi wajib, tetapi pembaca sedia ada masih akan menghormatiComicInfo.xml.
Mencipta & Menukar Fail CBZ (Langkah demi Langkah)
1. Sediakan Imej Anda
- Eksport setiap halaman komik sebagai imej.
- Namakan mereka dengan nombor berpad sifar (
001.jpg,002.jpg, …) untuk memastikan susunan yang betul. - Pilih codec yang sesuai untuk audiens anda: JPEG untuk saiz terkecil, PNG untuk seni tanpa kehilangan, WebP/AVIF untuk pemampatan moden, berkualiti tinggi.
2. (Pilihan) Jana Metadata
Alat seperti ComicTagger, cbr2cbz, atau skrip tersuai boleh auto‑populate ComicInfo.xml menggunakan OCR + LLMs. Langkah ini adalah pilihan tetapi sangat disyorkan untuk perpustakaan yang besar.
3. Zip Ia
# Navigate to the folder containing the pages
cd /path/to/pages
# Create a CBZ without extra compression (JPEGs are already compressed)
zip -0 -r ../MyComic.cbz *.jpg *.png ComicInfo.xml cover.jpg
# -0 = store (no compression) – speeds up the process
Namakan semula .zip yang terhasil kepada .cbz jika arkib anda tidak melakukannya secara automatik.
4. Sahkan Arkib
import zipfile, pathlib, sys
def list_pages(cbz_path: pathlib.Path):
with zipfile.ZipFile(cbz_path, 'r') as z:
# Guard against zip‑bombs (max 500 MB uncompressed)
total = sum(z.getinfo(name).file_size for name in z.namelist())
if total > 500 * 1024 * 1024:
raise ValueError("Archive too large")
images = [n for n in z.namelist()
if n.lower().endswith(('.jpg', '.jpeg', '.png', '.webp', '.avif'))]
images.sort() # natural alphabetical order
return images
if __name__ == "__main__":
cbz = pathlib.Path(sys.argv[1])
for page in list_pages(cbz):
print(page)
Menjalankan python list_pages.py MyComic.cbz sepatutnya mencetak senarai nama fail halaman yang bersih dan teratur.
5. Tukar ke PDF (jika anda memerlukan versi cetakan)
unzip -q MyComic.cbz -d tmp_pages
convert tmp_pages/*.jpg MyComic.pdf # ImageMagick's `convert`
rm -r tmp_pages
Trend, Keselamatan, dan Masa Depan CBZ
| Trend | Apa yang Berlaku | Kesan pada CBZ |
|---|---|---|
| Pengedaran Web‑first | Penerbit menyimpan CBZ di storan awan dengan URL pra‑tandatangan. | Muat turun lebih cepat, tanpa DRM; penerbitan kendiri lebih mudah. |
| Komik hibrid/interaktif | Menambah index.html + aset dalam arkib mencipta komik “dipertingkatkan” (audio, video, HTML5). | Pembaca yang menyokong paparan web boleh memaparkan lapisan multimedia. |
| Penggunaan WebP & AVIF | ~15 % keluaran baru (2024) menggunakan codec ini. | Pengurangan saiz 30‑50 % sambil mengekalkan kualiti—penting untuk jalur lebar mudah alih. |
| Metadata dijana AI | Alat seperti ComicTagger kini menggunakan OCR + LLM untuk mengisi ComicInfo.xml. | Kebolehcapaian yang lebih baik, penandaan automatik, dan organisasi perpustakaan. |
| Aplikasi membaca selaras awan | Chunky, Perfect Viewer, dan lain-lain menyelaraskan kemajuan melalui Firebase/iCloud. | Membaca tanpa gangguan merentasi telefon, tablet, dan desktop. |
| Usaha standardisasi (CBZ v2.0) | DCI mencadangkan manifest.json wajib, aset berbilang resolusi, dan bendera <DRM>. | Akan menjadikan CBZ lebih kukuh untuk peranti beresolusi tinggi‑DPI dan pengurusan hak pilihan. |
| Kesedaran keselamatan | Serangan zip‑bomb (ZIP kecil → gigabait apabila diekstrak) adalah ancaman sebenar. | Pembaca kini menguatkuasakan had saiz pengekstrakan dan menggunakan perpustakaan selamat (contohnya, zipfile Python dengan pemeriksaan). |
Petua Keselamatan untuk Pembangun
Sentiasa sahkan jumlah saiz tidak dimampat sebelum mengekstrak CBZ. Pemeriksaan mudah (seperti yang ditunjukkan dalam snippet Python) menghalang arkib berniat jahat daripada menghabiskan ruang cakera atau memori.
Bagaimana Pembaca Sebenarnya Memaparkan CBZ
- Buka arkib – Aplikasi membaca direktori pusat ZIP untuk mendapatkan indeks cepat entri.
- Tapis fail imej – Entri bukan imej (
ComicInfo.xml,__MACOSX/, dll.) diabaikan. - Susun mengikut abjad – Oleh kerana penamaan berpad sifar, senarai yang disusun sepadan dengan susunan halaman yang dimaksudkan.
- Huraikan metadata – Jika
ComicInfo.xmlwujud, pembaca mengekstrak bendera jenis halaman, tajuk, pengarang, dll., dan mungkin menyembunyikan halaman yang ditandakan sebagaiAdvertatauDeleted. - Render halaman – Imej didekod (sering dengan penyahkod JPEG/WebP yang dipercepatkan perkakasan pada tablet e‑ink moden) dan dipaparkan satu demi satu, dengan pra‑muat beberapa halaman seterusnya untuk penatalan yang lancar.
- Simpan keadaan – Kedudukan membaca, penanda buku, dan anotasi disimpan secara tempatan atau diselaraskan ke awan, bergantung pada aplikasi.
Rangka kerja itu menjelaskan mengapa CBZ terasa secepat dan responsif seperti PDF asli, namun tetap sepenuhnya terbuka dan boleh disunting.
Kesimpulannya: Keanggunan CBZ terletak pada kesederhanaannya—sebuah ZIP biasa yang sesiapa pun boleh buka, edit, atau guna semula. Dengan metadata ComicInfo.xml pilihan, codec imej moden, dan piawaian yang muncul, ia terus berkembang sambil tetap setia kepada akar tanpa DRM, merentas platform.