Останнє оновлення: 28 липня, 2026

TL;DR CBZ (Comic Book Zip) — це не що інше, як стандартний ZIP‑архів, який об’єднує серію послідовних файлів‑зображень—плюс додаткові метадані—в один контейнер коміксів без DRM. Оскільки він базується на поширеному форматі ZIP, будь‑який інструмент архівації може його відкрити, а читачі просто сортують зображення за алфавітом, щоб показати сторінки у правильному порядку. Сучасні CBZ часто включають ComicInfo.xml для багатих бібліотечних даних, використовують ефективні кодеки зображень, такі як WebP/AVIF, і навіть вбудовують HTML для інтерактивних «розширених» коміксів.
Що саме таке CBZ?
- Назва: Comic Book Zip – ZIP‑файл з розширенням
.cbz. - Тип MIME:
application/vnd.comicbook+zip(зареєстровано в IANA у 2012 році). - Походження: Популяризовано спільнотою ComicRack (2005‑2008) як відкриту альтернативу пропрієтарним форматам, таким як CBR або PDF.
- Крос‑платформенність: Відкривається будь‑яким інструментом, сумісним з ZIP (7‑Zip, WinRAR, macOS Archive Utility, Linux
unzip). Спеціальне програмне забезпечення не потрібно для перегляду вмісту.
На практиці CBZ — це просто папка з зображеннями (JPEG, PNG, WebP тощо), запакована у zip і перейменована. Така простота є причиною того, що це де‑факто стандарт для цифрових коміксів на ПК, планшетах і телефонах.
Всередині CBZ: структура файлу
Коректно сформований CBZ дотримується плоскої ієрархії—без зайвого вкладення—щоб читачі могли миттєво знаходити сторінки. Нижче — типове дерево каталогів:
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
Ключові елементи
| Елемент | Що це | Чому це важливо |
|---|---|---|
| Послідовні файли зображень | Названі так, щоб сортуватися в алфавітному порядку (001.jpg, 002.jpg, …) | Гарантує правильний порядок сторінок у всіх читачів. |
| Формат зображення | JPEG, PNG, GIF, WebP, AVIF, BMP, TIFF | Визначає розмір файлу, візуальну якість та сумісність пристроїв. |
| ComicInfo.xml | Необов’язковий XML, що відповідає схемі ComicRack | Зберігає назву, автора, серію, номер випуску, мову, прапорці типу сторінки та навіть дані мініатюри. Забезпечує потужне керування бібліотекою. |
| Обкладинка | cover.jpg/cover.png у кореневій теці | Використовується багатьма додатками як мініатюра коміксу в галереях. |
| Імена файлів Unicode | Сучасний ZIP підтримує UTF‑8 | Необхідно для назв не‑латинською та міжнародних коміксів. |
| Центральний каталог ZIP | Індекс у кінці архіву | Читачі читають це, щоб швидко сформувати список сторінок; пошкодження тут може зламати весь CBZ. |
Оскільки архів стискає лише вже стиснені зображення, кінцевий розмір зазвичай дорівнює лише сумі оригінальних файлів плюс кілька кілобайт накладних витрат ZIP (< 5 %).
Магія метаданих: ComicInfo.xml та прапорці типу сторінки
Хоча CBZ працює ідеально без додаткових файлів, додавання ComicInfo.xml перетворює просту стеку зображень у придатний до пошуку, багатодокументований комікс. Ось мінімальний приклад:
<?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>
Навіщо це?
- Інструменти бібліотеки (ComicRack, Calibre тощо) можуть сортувати, фільтрувати та шукати за цими полями.
- Позначки типу сторінок (
FrontCover,BackCover,Advert,Deletedтощо) дозволяють читачам приховувати рекламу, показувати лише сторінки історії або відображати власну мініатюру обкладинки. - Забезпечення майбутньої сумісності – Оскільки Digital Comics Initiative розробляє специфікацію CBZ v2.0, файл маніфесту (
manifest.json) може стати обов’язковим, проте існуючі читачі все ще підтримуватимутьComicInfo.xml.
Створення та конвертація CBZ‑файлів (крок за кроком)
1. Підготуйте ваші зображення
- Експортуйте кожну сторінку комікса як зображення.
- Назвіть їх числами з нульовим заповненням (
001.jpg,002.jpg, …), щоб забезпечити правильне сортування. - Виберіть кодек, який підходить вашій аудиторії: JPEG для найменшого розміру, PNG для без втрат, WebP/AVIF для сучасного, високоякісного стиснення.
2. (Необов’язково) Створити метадані
Інструменти, такі як ComicTagger, cbr2cbz, або власні скрипти, можуть автоматично заповнювати ComicInfo.xml, використовуючи OCR + LLM. Цей крок є необов’язковим, але дуже рекомендованим для великих бібліотек.
3. Стисніть його
# 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
Перейменуйте отриманий .zip у .cbz, якщо ваш архіватор не зробив це автоматично.
4. Перевірте архів
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 має вивести чистий, впорядкований список імен файлів сторінок.
5. Конвертувати у PDF (якщо вам потрібна друкована версія)
unzip -q MyComic.cbz -d tmp_pages
convert tmp_pages/*.jpg MyComic.pdf # ImageMagick's `convert`
rm -r tmp_pages
Тенденції, безпека та майбутнє CBZ
| Тенденція | Що відбувається | Вплив на CBZ |
|---|---|---|
| Розповсюдження спочатку в інтернеті | Видавці розміщують CBZ-файли в хмарному сховищі з попередньо підписаними URL-адресами. | Швидші, без DRM завантаження; простіше самовидавництво. |
| Гібридні/інтерактивні комікси | Додавання index.html + ресурсів всередині архіву створює “розширені” комікси (аудіо, відео, HTML5). | Читачі, які підтримують веб‑перегляд, можуть відображати мультимедійні шари. |
| Впровадження WebP та AVIF | ~15 % нових випусків (2024) використовують ці кодеки. | Зменшення розміру на 30‑50 % при збереженні якості—критично важливо для мобільної пропускної здатності. |
| Метадані, створені ШІ | Інструменти, такі як ComicTagger, тепер використовують OCR + LLM для заповнення ComicInfo.xml. | Краща виявленість, автоматичне тегування та організація бібліотеки. |
| Додатки для читання з хмарною синхронізацією | Chunky, Perfect Viewer та інші синхронізують прогрес через Firebase/iCloud. | Безшовне читання на телефонах, планшетах та настільних комп’ютерах. |
| Рух до стандартизації (CBZ v2.0) | DCI пропонує обов’язковий manifest.json, багатороздільні ресурси та прапорець <DRM>. | Зробить CBZ більш надійним для пристроїв з високою роздільною здатністю та забезпечить необов’язкове управління правами. |
| Обізнаність про безпеку | Атаки типу Zip‑bomb (маленький ZIP → гігабайти після розпакування) становлять реальну загрозу. | Читачі тепер застосовують обмеження розміру розпакування та використовують безпечні бібліотеки (наприклад, zipfile у Python з перевірками). |
Порада щодо безпеки для розробників
Завжди перевіряйте загальний розмір розпакованих даних перед розпакуванням CBZ. Простий контроль (як показано у фрагменті коду Python) запобігає виснаженню дискового простору або пам’яті шкідливими архівами.
Як читач фактично відображає CBZ
- Відкрити архів – Додаток читає центральний каталог ZIP, щоб швидко отримати індекс записів.
- Фільтрувати файли зображень – Незаписані як зображення записи (
ComicInfo.xml,__MACOSX/тощо) ігноруються. - Сортувати за алфавітом – Завдяки назві з нульовим заповненням, відсортований список відповідає запланованому порядку сторінок.
- Розбирати метадані – Якщо існує
ComicInfo.xml, читач витягує прапорці типу сторінки, назву, автора тощо і може приховати сторінки, позначені якAdvertабоDeleted. - Відображення сторінок – Зображення декодуються (часто за допомогою апаратно‑прискорених декодерів JPEG/WebP на сучасних e‑ink планшетах) і відображаються по одній, з попереднім завантаженням кількох наступних сторінок для плавної прокрутки.
- Збереження стану – Позиція читання, закладки та анотації зберігаються локально або синхронізуються з хмарою, залежно від застосунку.
Саме цей конвеєр пояснює, чому CBZ відчувається таким же швидким і реактивним, як нативний PDF, і водночас залишається повністю відкритим та редагованим.
Підсумок: Елегантність CBZ полягає у його простоті — простий ZIP, який будь-хто може відкрити, редагувати або перепризначити. Завдяки необов’язковим метаданим ComicInfo.xml, сучасним кодекам зображень та новим стандартам, він продовжує розвиватися, залишаючись вірним своїм DRM‑вільним, крос‑платформеним кореням.