Последна актуализация: 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 + LLMs. Тази стъпка е по избор, но силно се препоръчва за големи библиотеки.
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 % при запазване на качеството — критично за мобилната честотна лента. |
| AI‑генерирани метаданни | Инструменти като ComicTagger сега използват OCR + LLM, за да попълнят ComicInfo.xml. | По‑добра откриваемост, автоматизирано етикетиране и организация на библиотеката. |
| Приложения за четене с облачно синхронизиране | Chunky, Perfect Viewer и други синхронизират напредъка чрез Firebase/iCloud. | Безпроблемно четене на телефони, таблети и настолни компютри. |
| Инициатива за стандартизация (CBZ v2.0) | DCI предлага задължителен manifest.json, мулти‑резолюционни ресурси и <DRM> флаг. | Ще направи CBZ по‑устойчив за устройства с висока DPI и опционално управление на правата. |
| Съзнателност за сигурността | Атаките тип Zip‑bomb (малък ZIP → гигабайти при разархивиране) са реална заплаха. | Четеците сега налагат ограничения за размер на извличане и използват безопасни библиотеки (например zipfile на Python с проверки). |
Съвет за сигурност за разработчиците
Винаги проверявайте общия размер след разархивиране преди извличане на CBZ. Опростена проверка (както е показано в Python кода) предотвратява злонамерени архиви от изчерпване на дисковото пространство или паметта.
Как четецът всъщност рендерира CBZ
- Отворете архива – Приложението чете централната директория на ZIP, за да получи бърз индекс на елементите.
- Филтрирайте файловете с изображения – Неизображеният entries (
ComicInfo.xml,__MACOSX/, и др.) се игнорират. - Сортирайте азбучно – Поради нулево‑пълненото именуване, сортираният списък съвпада с предвидения ред на страниците.
- Разчитайте метаданните – Ако съществува
ComicInfo.xml, четецът извлича флагове за тип страница, заглавие, автор и др., и може да скрие страници, маркирани катоAdvertилиDeleted. - Рендиране на страници – Изображенията се декодират (често с хардуерно ускорени JPEG/WebP декодери на съвременни e‑ink таблети) и се показват едно по едно, с предварително зареждане на следващите няколко страници за плавно превъртане.
- Запазване на състоянието – Позицията на четене, отметките и анотациите се запазват локално или се синхронизират в облака, в зависимост от приложението.
Този процес е причината CBZ да се усеща толкова бърз и отзивчив, колкото нативен PDF, но същевременно остава напълно отворен и редактиран.
Крайният извод: Елегантността на CBZ се крие в простотата му — обикновен ZIP, който всеки може да отвори, редактира или преизползва. С опционални метаданни ComicInfo.xml, съвременни кодеци за изображения и нововъзникващи стандарти, той продължава да се развива, като остава верен на своите DRM‑без, крос‑платформени корени.