Son Güncelleme: 28 Temmuz, 2026

Inside the CBZ - Understanding the Anatomy of Digital Comics

TL;DR CBZ (Comic Book Zip), bir dizi sıralı görüntü dosyasını—isteğe bağlı meta verilerle birlikte—tek bir DRM‑sız çizgi roman konteynerine paketleyen standart bir ZIP arşivi dışında bir şey değildir. Yaygın ZIP formatına dayandığı için herhangi bir arşivleme aracıyla açılabilir ve okuyucular görüntüleri alfabetik olarak sıralayarak sayfaları sırayla gösterir. Modern CBZ’ler genellikle zengin kütüphane verileri için ComicInfo.xml içerir, WebP/AVIF gibi verimli görüntü kodeklerini kullanır ve hatta etkileşimli “gelişmiş” çizgi romanlar için HTML gömer.


CBZ Tam Olarak Nedir?

  • İsim: Comic Book Zip.cbz uzantılı bir ZIP dosyası.
  • MIME türü: application/vnd.comicbook+zip (2012’de IANA’ya kaydedildi).
  • Kökenler: ComicRack topluluğu (2005‑2008) tarafından CBR veya PDF gibi tescilli formatlara açık kaynaklı bir alternatif olarak popülerleştirildi.
  • Çapraz‑platform: Herhangi bir ZIP‑uyumlu araç (7‑Zip, WinRAR, macOS Archive Utility, Linux unzip) ile açılabilir. İçeriği incelemek için özel bir yazılım gerekmez.

Pratikte, bir CBZ sadece bir klasör içinde bulunan görüntüler (JPEG, PNG, WebP, vb.) sıkıştırılıp yeniden adlandırılmış halidir. Bu basitlik, PC’lerde, tabletlerde ve telefonlarda dijital çizgi romanlar için de‑facto standart olmasının nedenidir.


CBZ’nin İçinde: Dosya Yapısı

İyi yapılandırılmış bir CBZ, düz bir hiyerarşi izler—ekstra iç içe geçmişlik yok—böylece okuyucular sayfaları anında bulabilir. Aşağıda tipik bir ağaç görünümü yer almaktadır:

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

Temel Öğeler

ÖğeNedirNeden Önemlidir
Sıralı görüntü dosyalarıAlfabetik olarak sıralanacak şekilde adlandırılır (001.jpg, 002.jpg, …)Tüm okuyucularda doğru sayfa sırasını garanti eder.
Görüntü formatıJPEG, PNG, GIF, WebP, AVIF, BMP, TIFFDosya boyutunu, görsel doğruluğu ve cihaz uyumluluğunu belirler.
ComicInfo.xmlComicRack şemasını izleyen isteğe bağlı XMLBaşlık, yazar, seri, sayı numarası, dil, sayfa‑tipi bayrakları ve hatta küçük resim verilerini depolar. Güçlü kütüphane yönetimini sağlar.
Kapak resmicover.jpg/cover.png kök dizindeBirçok uygulama tarafından galerilerde çizgi romanın küçük resmi olarak kullanılır.
Unicode dosya adlarıModern ZIP, UTF‑8’i desteklerLatin dışı başlıklar ve uluslararası çizgi romanlar için gereklidir.
ZIP merkezi diziniArşivin sonunda indeksOkuyucular, sayfa listesini hızlıca oluşturmak için bunu okur; burada oluşan bozulma tüm CBZ’yi bozabilir.

Arşiv yalnızca zaten sıkıştırılmış görüntüleri sıkıştırdığı için, nihai boyut genellikle orijinal dosyaların toplamı artı birkaç kilobayt ZIP ek yükü (< 5 %) olur.


Meta Veri Sihri: ComicInfo.xml ve Sayfa‑Tipi Bayrakları

Bir CBZ, ekstra dosya olmadan mükemmel çalışırken, bir ComicInfo.xml eklemek basit bir resim yığınına aranabilir, zengin bir şekilde tanımlanmış bir çizgi roman haline getirir. İşte minimal bir örnek:

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

Neden zahmet?

  • Kütüphane araçları (ComicRack, Calibre, vb.) bu alanlara göre sıralama, filtreleme ve arama yapabilir.
  • Sayfa‑tipi bayrakları (FrontCover, BackCover, Advert, Deleted, vb.) okuyucuların reklamları gizlemesine, yalnızca hikaye sayfalarını göstermesine veya özel bir kapak küçük resmini görüntülemesine izin verir.
  • Geleceğe uyum – Digital Comics Initiative bir CBZ v2.0 spesifikasyonu tasarlarken, bir manifest dosyası (manifest.json) zorunlu hale gelebilir, ancak mevcut okuyucular hâlâ ComicInfo.xml‘i destekleyecek.

CBZ Dosyaları Oluşturma ve Dönüştürme (Adım‑Adım)

1. Görsellerinizi Hazırlayın

  • Her bir çizgi roman sayfasını resim olarak dışa aktar.
  • Doğru sıralamayı garantilemek için onları sıfır‑dolgulu sayılarla adlandırın (001.jpg, 002.jpg, …).
  • Hedef kitlenize uygun kodeği seçin: En küçük boyut için JPEG, kayıpsız sanat için PNG, modern, yüksek‑kaliteli sıkıştırma için WebP/AVIF.

2. (İsteğe Bağlı) Meta Verileri Oluşturun

ComicTagger, cbr2cbz gibi araçlar veya özel betikler OCR + LLM’leri kullanarak ComicInfo.xml dosyasını otomatik olarak doldurabilir. Bu adım isteğe bağlıdır ancak büyük kütüphaneler için şiddetle tavsiye edilir.

3. Sıkıştırın

# 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

Arşivleyiciniz otomatik olarak yapmadıysa, ortaya çıkan .zip dosyasını .cbz olarak yeniden adlandırın.

4. Arşivi Doğrulayın

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)

python list_pages.py MyComic.cbz komutunu çalıştırmak, sayfa dosya adlarının temiz ve sıralı bir listesini yazdırmalıdır.

5. PDF’ye Dönüştür (yazdırılabilir bir sürüme ihtiyacınız varsa)

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

Trendler, Güvenlik ve CBZ’nin Geleceği

TrendNe OluyorCBZ Üzerindeki Etki
Web‑ilk dağıtımYayıncılar, CBZ’leri önceden imzalanmış URL’lerle bulut depolamada barındırır.Daha hızlı, DRM’siz indirmeler; daha kolay kendi kendine yayınlama.
Hibrit/etkileşimli çizgi romanlarArşivin içine index.html + varlıkları eklemek, “gelişmiş” çizgi romanlar (ses, video, HTML5) oluşturur.Web görünümünü destekleyen okuyucular çoklu ortam katmanlarını renderlayabilir.
WebP ve AVIF’in benimsenmesi~%15 yeni sürüm (2024) bu kodekleri kullanıyor.Kaliteyi korurken %30‑%50 boyut azaltma—mobil bant genişliği için kritik.
Yapay zeka tarafından oluşturulan meta verilerArtık ComicTagger gibi araçlar OCR + LLM’leri kullanarak ComicInfo.xml dosyasını doldurur.Daha iyi keşfedilebilirlik, otomatik etiketleme ve kütüphane organizasyonu.
Bulut‑senkronlu okuma uygulamalarıChunky, Perfect Viewer ve diğerleri ilerlemeyi Firebase/iCloud üzerinden senkronize eder.Telefon, tablet ve masaüstü cihazlarda sorunsuz okuma.
Standartlaştırma çabası (CBZ v2.0)DCI, zorunlu bir manifest.json, çok‑çözünürlüklü varlıklar ve bir <DRM> bayrağı öneriyor.CBZ’yi yüksek‑DPI cihazlar ve isteğe bağlı hak yönetimi için daha sağlam hale getirecek.
Güvenlik farkındalığıZip‑bomb saldırıları (küçük ZIP → çıkarıldığında gigabaytlara dönüşür) gerçek bir tehdittir.Okuyucular artık çıkarma boyutu limitlerini zorunlu kılıyor ve güvenli kütüphaneler kullanıyor (ör. Python’un zipfile ile kontroller).

Geliştiriciler İçin Güvenlik İpucu

CBZ çıkarılmadan önce toplam sıkıştırılmamış boyutu her zaman doğrulayın. Python kod parçasında gösterildiği gibi basit bir kontrol, kötü amaçlı arşivlerin disk alanını veya belleği tüketmesini önler.


Bir Okuyucu Gerçekte Bir CBZ’yi Nasıl İşler

  1. Arşivi aç – Uygulama, girişlerin hızlı bir dizinini elde etmek için ZIP merkezi dizinini okur.
  2. Görüntü dosyalarını filtrele – Görüntü olmayan girişler (ComicInfo.xml, __MACOSX/, vb.) yok sayılır.
  3. Alfabetik sırala – Sıfır‑dolgulu adlandırma nedeniyle, sıralı liste istenen sayfa düzeniyle eşleşir.
  4. Meta verileri ayrıştırComicInfo.xml mevcutsa, okuyucu sayfa‑tipi bayraklarını, başlığı, yazarı vb. çıkarır ve Advert veya Deleted olarak işaretlenmiş sayfaları gizleyebilir.
  5. Sayfaları Renderla – Görüntüler (genellikle modern e‑ink tabletlerde donanım hızlandırmalı JPEG/WebP çözücüleriyle) çözülür ve tek tek görüntülenir, sorunsuz kaydırma için sonraki birkaç sayfanın önceden getirilmesiyle.
  6. Durumu Kalıcılaştır – Okuma konumu, yer imleri ve notlar, uygulamaya bağlı olarak yerel olarak kaydedilir veya buluta senkronize edilir.

Bu işlem hattı, CBZ’nin yerel bir PDF kadar hızlı ve duyarlı hissettirmesinin, aynı zamanda tamamen açık ve düzenlenebilir kalmasının nedenidir.


Sonuç: CBZ’nin zarafeti sadeliğinde yatar—herkesin açıp, düzenleyip veya yeniden kullanabileceği basit bir ZIP. İsteğe bağlı ComicInfo.xml meta verileri, modern görüntü codec’leri ve yeni ortaya çıkan standartlarla, DRM’siz, çok platformlu köklerine sadık kalarak evrimleşmeye devam ediyor.