Pēdējoreiz atjaunināts: 28 jūlijs, 2026

Inside the CBZ - Understanding the Anatomy of Digital Comics

TL;DR CBZ (Comic Book Zip) nav neko vairāk kā standarta ZIP arhīvs, kas apvieno virkni secīgu attēlu failu — plus izvēles metadatus — vienā, DRM‑brīvā komiksu konteinerā. Tā kā tas balstās uz vispārpieņemto ZIP formātu, jebkurš arhivēšanas rīks to var atvērt, un lasītāji vienkārši kārto attēlus alfabētiskā secībā, lai parādītu lapas pareizā kārtībā. Mūsdienu CBZ bieži ietver ComicInfo.xml bagātīgām bibliotēkas datiem, izmanto efektīvus attēlu kodekus kā WebP/AVIF, un pat iekļauj HTML interaktīviem “uzlabotiem” komiksiem.


Kas tieši ir CBZ?

  • Nosaukums: Comic Book Zip – ZIP fails ar .cbz paplašinājumu.
  • MIME tips: application/vnd.comicbook+zip (reģistrēts IANA 2012. gadā).
  • Izcelsme: Popularizēja ComicRack kopiena (2005‑2008) kā atvērtā koda alternatīvu īpašnieku formātiem, piemēram, CBR vai PDF.
  • Daudzplatformu: Atverams ar jebkuru ZIP‑savietojamu rīku (7‑Zip, WinRAR, macOS Archive Utility, Linux unzip). Nav nepieciešama īpaša programmatūra, lai pārbaudītu saturu.

Praktiskā lietā CBZ ir tikai attēlu mape (JPEG, PNG, WebP utt.), kas ir saspiesta un pārdēvēta. Šī vienkāršība ir iemesls, kāpēc tas ir de‑facto standarts digitālajiem komiksiem uz PC, planšetdatoriem un telefoni.


Iekš CBZ: Faila struktūra

Labi veidots CBZ seko plakanei hierarhijai—nav papildu iekļaušanas—lai lasītāji var uzreiz atrast lapas. Zemāk ir tipisks koka skats:

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

Galvenie elementi

ElementsKas tas irKāpēc tas ir svarīgi
Secīgi attēlu failiNosaukti tā, lai tie tiktu sakārtoti alfabētiski (001.jpg, 002.jpg, …)Nodrošina pareizu lapu secību visos lasītājos.
Attēla formātsJPEG, PNG, GIF, WebP, AVIF, BMP, TIFFNosaka faila lielumu, vizuālo precizitāti un ierīces saderību.
ComicInfo.xmlPapildu XML, kas atbilst ComicRack shēmaiSaglabā nosaukumu, autoru, sēriju, izdevuma numuru, valodu, lapas‑tipa karogus un pat sīktēlu datus. Ļauj veikt spēcīgu bibliotēkas pārvaldību.
Vāka attēlscover.jpg/cover.png saknēDaudzās lietotnēs tiek izmantots kā komiksa sīktēls galerijās.
Unicode failu nosaukumiMūsdienu ZIP atbalsta UTF‑8Svarīgi ne‑latīņu nosaukumiem un starptautiskiem komiksiem.
ZIP centrālais direktorijsIndekss arhīva beigāsLasītāji to lasa, lai ātri izveidotu lapu sarakstu; bojājums šeit var sabojāt visu CBZ.

Tā kā arhīvs tikai saspiest jau saspiestus attēlus, galīgais izmērs parasti ir tikai oriģinālo failu summa plus dažas kilobaitu ZIP pārpalikums (< 5 %).


Metadatu maģija: ComicInfo.xml un lapas tipa karogi

Lai gan CBZ darbojas perfekti bez papildu failiem, ComicInfo.xml pievienošana pārvērš vienkāršu attēlu steku meklējamu, bagātīgi aprakstītu komiksu. Šeit ir minimāls piemērs:

<?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>

Kāpēc uztraucēties?

  • Bibliotēkas rīki (ComicRack, Calibre, utt.) var kārtot, filtrēt un meklēt, balstoties uz šiem laukiem.
  • Lapas tipa karogi (FrontCover, BackCover, Advert, Deleted, utt.) ļauj lasītājiem paslēpt reklāmas, rādīt tikai stāsta lapas vai parādīt pielāgotu vāka sīktēlu.
  • Nākotnes nodrošināšana – Tā kā Digital Comics Initiative izstrādā CBZ v2.0 specifikāciju, manifestācijas fails (manifest.json) var kļūt obligāts, bet esošie lasītāji joprojām cienīs ComicInfo.xml.

CBZ failu izveide un konvertēšana (soli pa solim)

1. Sagatavojiet savus attēlus

  • Eksportējiet katru komiksa lapu kā attēlu.
  • Nosauciet tos ar nulles‑pildītiem numuriem (001.jpg, 002.jpg, …), lai nodrošinātu pareizu kārtošanu.
  • Izvēlieties kodeku, kas atbilst jūsu auditorijai: JPEG mazākajam izmēram, PNG bezzudumu mākslai, WebP/AVIF modernai, augstas kvalitātes saspiešanai.

2. (Pēc izvēles) Ģenerēt metadatus

Rīki, piemēram, ComicTagger, cbr2cbz, vai pielāgoti skripti, var automātiski aizpildīt ComicInfo.xml izmantojot OCR + LLM. Šis solis ir izvēles, bet ļoti ieteicams lielām bibliotēkām.

3. Saspiest to

# 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

Pārdēvējiet iegūto .zip uz .cbz, ja jūsu arhivators to neizdarīja automātiski.

4. Pārbaudiet arhīvu

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)

Izpildot python list_pages.py MyComic.cbz, vajadzētu izvadīt tīru, sakārtotu lapu failu nosaukumu sarakstu.

5. Konvertēt uz PDF (ja jums vajag drukājamu versiju)

unzip -q MyComic.cbz -d tmp_pages
convert tmp_pages/*.jpg MyComic.pdf   # ImageMagick's `convert`
rm -r tmp_pages

Tendences, drošība un CBZ nākotne

TendenceKas notiekIetekme uz CBZ
Web‑first izplatīšanaIzdevēji glabā CBZ mākoņa glabātavā ar iepriekš parakstītiem URL.Ātrāki, DRM‑bezmaksas lejupielādes; vienkāršāka pašpublicēšana.
Hibrīda/interaktīvi komiksiPievienojot index.html + resursus arhīvā, tiek izveidoti “uzlaboti” komiksi (audio, video, HTML5).Lasītāji, kas atbalsta tīmekļa skatījumu, var attēlot multivides slāņus.
WebP un AVIF pieņemšana~15 % no jauniem izdevumiem (2024) izmanto šos kodekus.30‑50 % izmēra samazinājums, saglabājot kvalitāti—būtiski mobilajam joslas platumam.
AI‑ģenerēti metadatiRīki, piemēram, ComicTagger, tagad izmanto OCR + LLM, lai aizpildītu ComicInfo.xml.Labāka atklāmība, automatizēta tagošana un bibliotēkas organizācija.
Mākoņa sinhronizācijas lasīšanas lietotnesChunky, Perfect Viewer un citi sinhronizē progresu caur Firebase/iCloud.Nerūpējama lasīšana visos tālruņos, planšetdatoros un datora ekrānos.
Standartizācijas virzība (CBZ v2.0)DCI piedāvā obligātu manifest.json, daudzrezolūcijas resursus un <DRM> karogu.Padarīs CBZ izturīgāku augstas DPI ierīcēm un ļaus izvēles tiesību pārvaldību.
Drošības apziņaZip‑bumbu uzbrukumi (mazs ZIP → gigabaiti, kad izpakoti) ir īsts drauds.Lasītāji tagad uzliek izpakotā izmēra limitus un izmanto drošas bibliotēkas (piemēram, Python zipfile ar pārbaudēm).

Drošības padoms izstrādātājiem

Vienmēr pārbaudiet kopējo nekompresēto izmēru pirms izpakot CBZ. Vienkārša pārbaude (kā parādīts Python fragmentā) neļauj ļaundabīgiem arhīviem iztukšot diska vietu vai atmiņu.


Kā lasītājs patiesībā attēlo CBZ

  1. Atveriet arhīvu – Lietotne lasa ZIP centrālo direktoriju, lai ātri iegūtu ierakstu indeksu.
  2. Filtrējiet attēlu failus – Ne‑attēlu ieraksti (ComicInfo.xml, __MACOSX/, utt.) tiek ignorēti.
  3. Kārtot alfabētiski – Pateicoties nulles‑pildītajam nosaukumam, kārtots saraksts atbilst paredzētajai lapu secībai.
  4. Parsēt metadatus – Ja ComicInfo.xml pastāv, lasītājs izvelk lapas‑tipa karogus, nosaukumu, autoru utt., un var paslēpt lapas, kas atzīmētas kā Advert vai Deleted.
  5. Attēlot lapas – Attēli tiek atkodēti (bieži ar aparatūras‑paātrinātiem JPEG/WebP dekoderiem uz mūsdienīgiem e‑ink planšetdatoriem) un parādīti viens‑pēc‑cita, ar nākamo pāru lapu priekšielādēšanu, lai nodrošinātu gludu ritināšanu.
  6. Saglabāt stāvokli – Lasīšanas pozīcija, grāmatzīmes un anotācijas tiek saglabātas lokāli vai sinhronizētas ar mākoņu, atkarībā no lietotnes.

Tieši tāpēc šī caurule ļauj CBZ justies tik ātram un reaģējošam kā vietējam PDF, bet vienlaikus saglabājas pilnīgi atvērts un rediģējams.


Kopsavilkums: CBZ elegance slēpjas tās vienkāršībā — vienkāršā ZIP, ko ikviens var atvērt, rediģēt vai pārveidot. Ar izvēles ComicInfo.xml metadatiem, modernajiem attēlu kodekiem un jaunajiem standartiem, tas turpina attīstīties, saglabājot savu DRM‑brīvo, platformu neatkarīgo pamatni.