Utoljára frissítve: 28 július, 2026

Inside the CBZ - Understanding the Anatomy of Digital Comics

TL;DR A CBZ (Comic Book Zip) nem más, mint egy szabványos ZIP archívum, amely egy sor egymást követő képfájlt—plusz opcionális metaadatokat—egyetlen, DRM‑mentes képregény konténerbe csomagol. Mivel az általános ZIP formátumra támaszkodik, bármely archiváló eszköz megnyithatja, és az olvasók egyszerűen ábécé sorrendbe rendezik a képeket, hogy a lapokat sorrendben jelenítsék meg. A modern CBZ-k gyakran tartalmazzák a ComicInfo.xml-t a gazdag könyvtári adatokhoz, hatékony képcodeceket használnak, mint a WebP/AVIF, és még HTML-t is beágyaznak az interaktív „bővített” képregényekhez.


Mi pontosan a CBZ?

  • Név: Comic Book Zip – egy ZIP fájl a .cbz kiterjesztéssel.
  • MIME típus: application/vnd.comicbook+zip (az IANA-nál 2012-ben regisztrálva).
  • Eredet: A ComicRack közösség (2005‑2008) népszerűsítette, mint nyílt forráskódú alternatívát a CBR vagy PDF szerű zárt formátumokhoz.
  • Kereszt‑platform: Bármely ZIP‑kompatibilis segédprogrammal (7‑Zip, WinRAR, macOS Archive Utility, Linux unzip) megnyitható. Nem szükséges speciális szoftver a tartalom megtekintéséhez.

Gyakorlatban a CBZ csak egy képmappát (JPEG, PNG, WebP stb.) tartalmaz, amelyet zip‑eltünk és átneveztünk. Ez az egyszerűség teszi a de‑facto szabvánnyá a digitális képregények számára PC‑ken, táblagépeken és telefonokon.


A CBZ belseje: A fájlstruktúra

Egy jól felépített CBZ lapos hierarchiát követ – nincs extra beágyazás –, így az olvasók azonnal megtalálják az oldalakat. Alább egy tipikus fájlfaszerkezet látható:

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

Kulcsfontosságú elemek

ElemMi ezMiért fontos
Szekvenciális képfájlokElnevezve úgy, hogy betűrendben rendeződjenek (001.jpg, 002.jpg, …)Biztosítja a helyes oldalsorrendet minden olvasóban.
KépformátumJPEG, PNG, GIF, WebP, AVIF, BMP, TIFFMeghatározza a fájlméretet, a vizuális hűséget és az eszközkompatibilitást.
ComicInfo.xmlOpcionális XML a ComicRack séma szerintTárolja a címet, szerzőt, sorozatot, számot, nyelvet, oldal‑típus jelzőket, sőt a bélyegkép adatokat is. Lehetővé teszi a hatékony könyvtárkezelést.
Borítóképcover.jpg/cover.png a gyökérbenSok alkalmazás használja a képregény bélyegképét a galériákban.
Unicode fájlnevekA modern ZIP támogatja az UTF‑8-atElengedhetetlen a nem latin címekhez és a nemzetközi képregényekhez.
ZIP központi könyvtárIndex az archívum végénAz olvasók ezt beolvassák, hogy gyorsan felépítsék az oldallistát; a sérülés itt tönkreteheti az egész CBZ-t.

Mivel az archívum csak már tömörített képeket tömörít, a végső méret általában csak az eredeti fájlok összege plusz néhány kilobájt ZIP-túlterhelés (< 5 %).


Metaadatok varázsa: ComicInfo.xml és oldal‑típus jelzők

Miközben egy CBZ tökéletesen működik extra fájlok nélkül, egy ComicInfo.xml hozzáadása egyszerű képkupacot kereshetővé, gazdagon leírt képregénnyé alakít. Íme egy minimális példa:

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

Miért is gond?

  • Könyvtári eszközök (ComicRack, Calibre, stb.) képesek rendezni, szűrni és keresni ezek alapján a mezők szerint.
  • Oldaltípus jelzők (FrontCover, BackCover, Advert, Deleted, stb.) lehetővé teszik az olvasók számára, hogy elrejtsék a hirdetéseket, csak a történetoldalakat mutassák, vagy egy egyedi borítóminiatűröt jelenítsenek meg.
  • Jövőbiztosítás – Ahogy a Digital Comics Initiative a CBZ v2.0 specifikációt dolgozza ki, egy manifest fájl (manifest.json) kötelezővé válhat, de a meglévő olvasók továbbra is támogatni fogják a ComicInfo.xml-t.

CBZ fájlok létrehozása és konvertálása (lépésről‑lépésre)

1. Készítsd elő a képeidet

  • Exportáld minden képregényoldalt képként.
  • Nevezd el őket nullával kitöltött számokkal (001.jpg, 002.jpg, …), hogy garantáld a helyes rendezést.
  • Válaszd ki a közönségednek megfelelő kodeket: JPEG a legkisebb méretért, PNG a veszteségmentes grafikáért, WebP/AVIF a modern, magas minőségű tömörítésért.

2. (Opcionális) Metaadatok generálása

Az olyan eszközök, mint a ComicTagger, a cbr2cbz, vagy egyedi szkriptek automatikusan kitölthetik a ComicInfo.xml-t OCR + LLM-ek használatával. Ez a lépés opcionális, de nagy könyvtárak esetén erősen ajánlott.

3. Csomagold be ZIP‑be

# 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

Nevezze át a kapott .zip fájlt .cbz-re, ha a tömörítő nem tette meg automatikusan.

4. Ellenőrizd az archívumot

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)

A python list_pages.py MyComic.cbz futtatása egy tiszta, rendezett oldalfájlnevek listáját kell, hogy kiírja.

5. Konvertáld PDF‑be (ha nyomtatható verzióra van szükséged)

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

Trendek, biztonság és a CBZ jövője

TrendMi történikHatás a CBZ-re
Web‑first terjesztésA kiadók a CBZ-ket felhő tárolóban helyezik el előre aláírt URL-ekkel.Gyorsabb, DRM‑mentes letöltések; egyszerűbb ön‑kiadás.
Hibrid/interaktív képregényekAz index.html + eszközök hozzáadása az archívumba “fejlett” képregényeket hoz létre (audio, video, HTML5).Azok az olvasók, amelyek támogatják a webes nézetet, megjeleníthetik a multimédiás rétegeket.
A WebP és AVIF elterjedése~15 % az új kiadásokból (2024) használja ezeket a kodekeket.30‑50 % méretcsökkenés a minőség megőrzése mellett—kritikus a mobil sávszélességhez.
AI‑által generált metaadatokAz olyan eszközök, mint a ComicTagger, most OCR‑t és LLM‑eket használnak a ComicInfo.xml kitöltéséhez.Jobb felfedezhetőség, automatikus címkézés és könyvtár-szervezés.
Felhő‑szinkronizált olvasóalkalmazásokA Chunky, a Perfect Viewer és mások a Firebase/iCloud segítségével szinkronizálják az előrehaladást.Zökkenőmentes olvasás telefonokon, táblagépeken és asztali gépeken.
Szabványosítási törekvés (CBZ v2.0)A DCI kötelező manifest.json‑t, több felbontású eszközöket és egy <DRM> jelzőt javasol.Ez robusztusabbá teszi a CBZ‑t a nagy DPI‑es eszközökön, valamint opcionális jogkezelést biztosít.
BiztonságtudatosságA Zip‑bomb támadások (kicsi ZIP → gigabájtok kicsomagoláskor) valódi fenyegetésnek számítanak.Az olvasók most kényszerítik a kicsomagolási méretkorlátokat, és biztonságos könyvtárakat használnak (például a Python zipfile modulját ellenőrzésekkel).

Biztonsági tipp fejlesztőknek

Mindig ellenőrizze a teljes kitömörített méretet kicsomagolás előtt egy CBZ esetén. Egy egyszerű ellenőrzés (ahogy a Python kódrészletben látható) megakadályozza, hogy a rosszindulatú archívumok kimerítsék a lemezterületet vagy a memóriát.


Hogyan jeleníti meg egy olvasó valójában a CBZ-t

  1. Nyissa meg az archívumot – Az alkalmazás beolvassa a ZIP központi könyvtárát, hogy gyors indexet kapjon a bejegyzésekről.
  2. Szűrje ki a képfájlokat – A nem képfájl bejegyzéseket (ComicInfo.xml, __MACOSX/, stb.) figyelmen kívül hagyja.
  3. Rendezze alfabetikusan – A nullával kitöltött elnevezés miatt a rendezett lista megegyezik a kívánt oldalsorrenddel.
  4. Metaadatok feldolgozása – Ha létezik a ComicInfo.xml, az olvasó kinyeri az oldal‑típusú jelzőket, címet, szerzőt stb., és elrejtheti a Advert vagy Deleted jelölésű oldalakat.
  5. Oldalak renderelése – A képeket dekódolják (gyakran hardveresen gyorsított JPEG/WebP dekóderekkel a modern e‑ink táblagépeken), és egyesével jelenítik meg, előtöltve a következő néhány oldalt a sima görgetés érdekében.
  6. Állapot megőrzése – Az olvasási pozíció, a könyvjelzők és a jegyzetek helyileg mentésre kerülnek vagy a felhőbe szinkronizálódnak, az alkalmazástól függően.

Ez a folyamatlánc teszi lehetővé, hogy a CBZ olyan gyors és reagálóképes legyen, mint egy natív PDF, miközben teljesen nyílt és szerkeszthető marad.


Összegzés: A CBZ eleganciája az egyszerűségében rejlik — egy egyszerű ZIP, amelyet bárki megnyithat, szerkeszthet vagy újrahasznosíthat. Opcionális ComicInfo.xml metaadatokkal, modern kép kodekekkel és feltörekvő szabványokkal folyamatosan fejlődik, miközben hű marad DRM‑mentes, többplatformos gyökereihez.