Paskutinį kartą atnaujinta: 28 July, 2026

TL;DR CBZ (Comic Book Zip) nėra niekas kitas, kaip įprastas ZIP archyvas, kuris sujungia seriją nuoseklių paveikslų failų – kartu su pasirenkamais metaduomenimis – į vieną, be DRM apsaugos komiksų konteinerį. Kadangi jis remiasi plačiai paplitusia ZIP forma, bet kuri archyvavimo priemonė gali jį atverti, o skaityklės tiesiog surikiuoja paveikslus abėcėlės tvarka, kad parodytų puslapius teisinga seka. Šiuolaikiniai CBZ dažnai apima ComicInfo.xml turtingiems bibliotekos duomenims, naudoja efektyvius vaizdo kodekus, tokius kaip WebP/AVIF, ir net įterpia HTML interaktyviems „patobulintiems“ komiksams.
Kas tiksliai yra CBZ?
- Pavadinimas: Comic Book Zip – ZIP failas su
.cbzplėtiniu. - MIME tipas:
application/vnd.comicbook+zip(registruotas IANA 2012 m.). - Kilmė: Populiarino ComicRack bendruomenė (2005‑2008) kaip atviro kodo alternatyvą nuosavybinėms formatams, tokiems kaip CBR arba PDF.
- Kelių platformų: Atveriamas bet kuria ZIP‑suderinama programa (7‑Zip, WinRAR, macOS Archive Utility, Linux
unzip). Nereikia specialios programinės įrangos turinio peržiūrai.
Praktiškai CBZ yra tiesiog aplankas su vaizdais (JPEG, PNG, WebP ir kt.), suspaustas į zip ir pervadintas. Šis paprastumas yra priežastis, kodėl tai yra de‑facto standartas skaitmeniniams komiksams PC, planšetėse ir telefonuose.
CBZ viduje: Failo struktūra
Tvarkingai suformuotas CBZ laikosi plokščios hierarchijos—be papildomo įdėjimo—kad skaitytojai galėtų iš karto rasti puslapius. Žemiau pateikiamas tipinis medžio vaizdas:
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
Pagrindiniai elementai
| Elementas | Kas tai yra | Kodėl tai svarbu |
|---|---|---|
| Sekos vaizdo failai | Pavadinti taip, kad jie būtų surūšiuoti abėcėlės tvarka (001.jpg, 002.jpg, …) | Užtikrina teisingą puslapių tvarką visų skaitytojų atžvilgiu. |
| Vaizdo formatas | JPEG, PNG, GIF, WebP, AVIF, BMP, TIFF | Nustato failo dydį, vaizdo tikslumą ir įrenginio suderinamumą. |
| ComicInfo.xml | Pasirinktinė XML, atitinkanti ComicRack schemą | Saugo pavadinimą, autorių, seriją, leidinio numerį, kalbą, puslapio tipų žymas ir net miniatiūrų duomenis. Leidžia efektyvią bibliotekos valdymą. |
| Viršelio paveikslėlis | cover.jpg/cover.png šakniniame kataloge | Naudojama daugelio programų kaip komiksų miniatiūra galerijose. |
| Unicode failų pavadinimai | Modernus ZIP palaiko UTF‑8 | Būtina ne lotyniškiems pavadinimams ir tarptautiniams komiksams. |
| ZIP centrinis katalogas | Indeksas archyvo pabaigoje | Skaitytojai skaito tai, kad greitai sukurtų puslapių sąrašą; sugadinimas čia gali sugadinti visą CBZ. |
Kadangi archyvas suspaudžia tik jau suspaustus vaizdus, galutinis dydis paprastai yra tik originalių failų suma, plius keli kilobaitai ZIP papildomų duomenų (< 5 %).
Metaduomenų magija: ComicInfo.xml ir puslapio tipų žymės
Nors CBZ veikia puikiai be jokių papildomų failų, pridėjus ComicInfo.xml paprasta vaizdų krūva tampa ieškoma, gausiai aprašyta komiksų knyga. Štai minimalus pavyzdys:
<?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>
Kodėl vargintis?
- Bibliotekos įrankiai (ComicRack, Calibre ir kt.) gali rūšiuoti, filtruoti ir ieškoti pagal šiuos laukus.
- Puslapio tipo vėliavos (
FrontCover,BackCover,Advert,Deletedir kt.) leidžia skaitytojams slėpti skelbimus, rodyti tik istorijos puslapius arba rodyti pasirinktą viršelio miniatiūrą. - Ateities apsauga – Kadangi Digital Comics Initiative rengia CBZ v2.0 specifikaciją, manifestas (
manifest.json) gali tapti privalomu, tačiau esami skaitytuvai vis tiek gerbsComicInfo.xml.
CBZ failų kūrimas & konvertavimas (žingsnis po žingsnio)
1. Paruoškite savo paveikslus
- Eksportuokite kiekvieną komiksų puslapį kaip paveikslėlį.
- Pavadinkite juos nulių užpildytais numeriais (
001.jpg,002.jpg, …), kad užtikrintumėte teisingą rikiavimą. - Pasirinkite kodeką, kuris tinka jūsų auditorijai: JPEG – mažiausiam dydžiui, PNG – be praradimų menui, WebP/AVIF – modernam, aukštos kokybės suspaudimui.
2. (Pasirinktinai) Generuokite metaduomenis
Įrankiai, tokie kaip ComicTagger, cbr2cbz, arba pasirinktinos skriptai, gali automatiškai užpildyti ComicInfo.xml naudodami OCR + LLM. Šis žingsnis yra neprivalomas, bet labai rekomenduojamas didelėms bibliotekoms.
3. Suspauskite į ZIP
# 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
Pervadinkite gautą .zip į .cbz, jei jūsų archyvavimo programa to nepadarė automatiškai.
4. Patikrinkite archyvą
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)
Vykdant python list_pages.py MyComic.cbz turėtų būti išspausdintas tvarkingas, surikiuotas puslapių failų pavadinimų sąrašas.
5. Konvertuokite į PDF (jei jums reikia spausdinamos versijos)
unzip -q MyComic.cbz -d tmp_pages
convert tmp_pages/*.jpg MyComic.pdf # ImageMagick's `convert`
rm -r tmp_pages
Trendai, saugumas ir CBZ ateitis
| Tendencija | Kas vyksta | Poveikis CBZ |
|---|---|---|
| Web‑first platinimas | Leidėjai talpina CBZ failus debesų saugyklose su iš anksto pasirašytais URL. | Greitesni, be DRM atsisiuntimai; lengvesnis savarankiškas leidyba. |
| Hibridiniai / interaktyvūs komiksai | Pridėjus index.html + išteklius į archyvą sukuriami „patobulinti“ komiksai (audio, video, HTML5). | Skaitytuvai, kurie palaiko žiniatinklio peržiūrą, gali atvaizduoti multimedijos sluoksnius. |
| WebP ir AVIF priėmimas | ~15 % naujų leidimų (2024) naudoja šiuos kodekus. | 30‑50 % dydžio sumažėjimas, išlaikant kokybę — svarbu mobiliojo ryšio pralaidumui. |
| Dirbtinio intelekto generuoti metaduomenys | Įrankiai, tokie kaip ComicTagger, dabar naudoja OCR + LLM, kad užpildytų ComicInfo.xml. | Geresnis aptikimas, automatizuotas žymėjimas ir bibliotekos organizavimas. |
| Debesų sinchronizacijos skaitymo programos | Chunky, Perfect Viewer ir kiti sinchronizuoja progresą per Firebase/iCloud. | Sklandus skaitymas telefonuose, planšetėse ir darbalaukiuose. |
| Standartizacijos skatinimas (CBZ v2.0) | DCI siūlo privalomą manifest.json, daugiatrakčių išteklių ir <DRM> vėliavą. | Tai padarys CBZ patvaresnį aukštos DPI įrenginiams ir suteiks galimybę naudoti pasirenkamą teisių valdymą. |
| Saugumo sąmoningumas | Zip‑bomb atakos (mažas ZIP → gigabaitai išskleidus) yra reali grėsmė. | Skaityklos dabar taiko išskleidimo dydžio ribas ir naudoja saugias bibliotekas (pvz., Python zipfile su patikrinimais). |
Saugumo patarimas kūrėjams
Visada patikrinkite bendrą neišskleistą dydį prieš išskleidžiant CBZ. Paprastas patikrinimas (kaip parodyta Python ištraukoje) neleidžia kenkėjiškoms archyvams išnaudoti disko vietą ar atmintį.
Kaip skaityklė iš tikrųjų atvaizduoja CBZ
- Atidarykite archyvą – Programa skaito ZIP centrinį katalogą, kad gautų greitą įrašų indeksą.
- Filtruokite paveikslų failus – Ne‑paveikslų įrašai (
ComicInfo.xml,__MACOSX/, ir kt.) yra ignoruojami. - Rikiuokite abėcėlės tvarka – Dėl nuliais užpildytų pavadinimų, surūšiuotas sąrašas atitinka numatytą puslapių tvarką.
- Apdorokite meta duomenis – Jei egzistuoja
ComicInfo.xml, skaityklė išskiria puslapio tipų vėliavas, pavadinimą, autorių ir t.t., ir gali slėpti puslapius, pažymėtus kaipAdvertarbaDeleted. - Rodyti puslapius – Vaizdai dekoduojami (dažnai naudojant aparatūrinį pagreitintą JPEG/WebP dekoderį moderniuose e‑ink planšetėse) ir rodomi po vieną, su ankstesniu kelių kitų puslapių iš anksto įkėlimu sklandžiam slinkimui.
- Išsaugoti būseną – Skaitymo pozicija, žymės ir anotacijos išsaugomos lokaliai arba sinchronizuojamos su debesimi, priklausomai nuo programos.
Ši procesų grandinė paaiškina, kodėl CBZ jaučiasi toks pat greitas ir reaguojantis kaip natūralus PDF, tačiau lieka visiškai atviras ir redaguojamas.
Pagrindinė mintis: CBZ elegancija slypi jos paprastume – paprastas ZIP, kurį bet kas gali atverti, redaguoti arba panaudoti kitaip. Su pasirinktiniais ComicInfo.xml metaduomenimis, šiuolaikiniais vaizdo kodekais ir besiformuojančiais standartais, ji toliau tobulėja, išlikdama ištikima savo DRM‑nemokamai, platformų nepriklausomai šakniai.