Cập nhật lần cuối: 28 Tháng Bảy, 2026

TL;DR CBZ (Comic Book Zip) không gì hơn một tệp ZIP tiêu chuẩn mà gói một loạt các tệp hình ảnh tuần tự — cộng với siêu dữ liệu tùy chọn — thành một container truyện tranh không có DRM. Vì nó dựa trên định dạng ZIP phổ biến, bất kỳ công cụ nén nào cũng có thể mở, và các trình đọc chỉ cần sắp xếp các hình ảnh theo thứ tự alphabet để hiển thị các trang theo đúng thứ tự. Các CBZ hiện đại thường bao gồm ComicInfo.xml để cung cấp dữ liệu thư viện phong phú, sử dụng các codec hình ảnh hiệu quả như WebP/AVIF, và thậm chí nhúng HTML cho các truyện tranh “tăng cường” tương tác.
CBZ là gì chính xác?
- Tên: Comic Book Zip – một tệp ZIP với phần mở rộng
.cbz. - Kiểu MIME:
application/vnd.comicbook+zip(đăng ký với IANA vào năm 2012). - Nguồn gốc: Được cộng đồng ComicRack (2005‑2008) phổ biến như một giải pháp thay thế mã nguồn mở cho các định dạng độc quyền như CBR hoặc PDF.
- Đa nền tảng: Có thể mở bằng bất kỳ công cụ tương thích ZIP nào (7‑Zip, WinRAR, macOS Archive Utility, Linux
unzip). Không cần phần mềm đặc biệt để kiểm tra nội dung.
Trong thực tế, CBZ chỉ là một thư mục chứa các hình ảnh (JPEG, PNG, WebP, v.v.) được nén zip và đổi tên. Sự đơn giản đó là lý do tại sao nó trở thành tiêu chuẩn de‑facto cho truyện tranh kỹ thuật số trên PC, máy tính bảng và điện thoại.
Bên trong một CBZ: Cấu trúc tệp
Một CBZ được cấu trúc đúng tuân theo một hệ thống phân cấp phẳng—không có thư mục con thừa—để người đọc có thể tìm trang ngay lập tức. Dưới đây là một cây thư mục điển hình:
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
Các yếu tố chính
| Phần tử | Nó là gì | Tại sao nó quan trọng |
|---|---|---|
| Các tệp hình ảnh tuần tự | Đặt tên để chúng sắp xếp theo thứ tự chữ cái (001.jpg, 002.jpg, …) | Đảm bảo thứ tự trang đúng trên mọi trình đọc. |
| Định dạng hình ảnh | JPEG, PNG, GIF, WebP, AVIF, BMP, TIFF | Xác định kích thước tệp, độ trung thực hình ảnh và khả năng tương thích thiết bị. |
| ComicInfo.xml | XML tùy chọn theo chuẩn ComicRack | Lưu trữ tiêu đề, tác giả, series, số phát hành, ngôn ngữ, các cờ loại trang, và thậm chí dữ liệu hình thu nhỏ. Cho phép quản lý thư viện mạnh mẽ. |
| Hình ảnh bìa | cover.jpg/cover.png ở thư mục gốc | Được nhiều ứng dụng sử dụng làm ảnh thu nhỏ của truyện tranh trong các bộ sưu tập. |
| Tên tệp Unicode | ZIP hiện đại hỗ trợ UTF‑8 | Cần thiết cho tiêu đề không phải Latinh và truyện tranh quốc tế. |
| Thư mục trung tâm ZIP | Chỉ mục ở cuối tệp nén | Các trình đọc đọc phần này để nhanh chóng xây dựng danh sách trang; nếu bị hỏng ở đây có thể làm hỏng toàn bộ CBZ. |
Vì tệp nén chỉ nén các hình ảnh đã được nén sẵn, kích thước cuối cùng thường chỉ là tổng của các tệp gốc cộng thêm vài kilobyte dung lượng thừa của ZIP (< 5 %).
Phép thuật siêu dữ liệu: ComicInfo.xml và Cờ loại trang
Trong khi một CBZ hoạt động hoàn hảo mà không cần bất kỳ tệp bổ sung nào, việc thêm một ComicInfo.xml biến một chồng ảnh đơn giản thành một truyện tranh có thể tìm kiếm, được mô tả chi tiết. Dưới đây là một ví dụ tối thiểu:
<?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>
Tại sao phải bận tâm?
- Công cụ thư viện (ComicRack, Calibre, v.v.) có thể sắp xếp, lọc và tìm kiếm dựa trên các trường này.
- Cờ loại trang (
FrontCover,BackCover,Advert,Deleted, v.v.) cho phép người đọc ẩn quảng cáo, chỉ hiển thị các trang truyện, hoặc hiển thị ảnh thu nhỏ bìa tùy chỉnh. - Chuẩn bị cho tương lai – Khi sáng kiến Digital Comics Initiative soạn thảo đặc tả CBZ v2.0, một tệp manifest (
manifest.json) có thể trở thành bắt buộc, nhưng các trình đọc hiện có vẫn sẽ hỗ trợComicInfo.xml.
Tạo và Chuyển đổi Tệp CBZ (Bước‑bước)
1. Chuẩn bị hình ảnh của bạn
- Xuất mỗi trang truyện tranh dưới dạng hình ảnh.
- Đặt tên chúng bằng các số có đệm không (
001.jpg,002.jpg, …) để đảm bảo sắp xếp đúng. - Chọn codec phù hợp với khán giả của bạn: JPEG cho kích thước nhỏ nhất, PNG cho hình ảnh không mất dữ liệu, WebP/AVIF cho nén hiện đại, chất lượng cao.
2. (Tùy chọn) Tạo siêu dữ liệu
Các công cụ như ComicTagger, cbr2cbz, hoặc các script tùy chỉnh có thể tự động điền vào ComicInfo.xml bằng OCR + LLMs. Bước này là tùy chọn nhưng rất được khuyến nghị cho các thư viện lớn.
3. Nén lại
# 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
Đổi tên file .zip kết quả thành .cbz nếu trình nén của bạn không tự động thực hiện.
4. Xác minh Lưu trữ
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)
Chạy python list_pages.py MyComic.cbz sẽ in ra danh sách tên tệp trang sạch sẽ và có thứ tự.
5. Chuyển đổi sang PDF (nếu bạn cần phiên bản có thể in)
unzip -q MyComic.cbz -d tmp_pages
convert tmp_pages/*.jpg MyComic.pdf # ImageMagick's `convert`
rm -r tmp_pages
Xu hướng, Bảo mật và Tương lai của CBZ
| Xu hướng | Điều gì đang xảy ra | Ảnh hưởng đến CBZ |
|---|---|---|
| Phân phối ưu tiên web | Nhà xuất bản lưu trữ CBZ trên đám mây với các URL đã ký trước. | Tải xuống nhanh hơn, không có DRM; tự xuất bản dễ dàng hơn. |
| Truyện tranh lai/tương tác | Thêm index.html + các tài nguyên vào trong tệp lưu trữ tạo ra các truyện tranh “nâng cao” (âm thanh, video, HTML5). | Các trình đọc hỗ trợ chế độ xem web có thể hiển thị các lớp đa phương tiện. |
| Áp dụng WebP & AVIF | ~15 % các bản phát hành mới (2024) sử dụng các codec này. | Giảm kích thước 30‑50 % trong khi vẫn giữ chất lượng—cực kỳ quan trọng cho băng thông di động. |
| Siêu dữ liệu do AI tạo | Các công cụ như ComicTagger hiện đang sử dụng OCR + LLM để điền vào ComicInfo.xml. | Khả năng khám phá tốt hơn, gắn thẻ tự động và tổ chức thư viện. |
| Ứng dụng đọc đồng bộ đám mây | Chunky, Perfect Viewer và các ứng dụng khác đồng bộ tiến độ qua Firebase/iCloud. | Đọc liền mạch trên điện thoại, máy tính bảng và máy tính để bàn. |
| Đẩy chuẩn hoá (CBZ v2.0) | DCI đề xuất một manifest.json bắt buộc, tài nguyên đa độ phân giải và một cờ <DRM>. | Sẽ làm cho CBZ mạnh mẽ hơn cho các thiết bị DPI cao và quản lý quyền tùy chọn. |
| Nhận thức bảo mật | Các cuộc tấn công Zip‑bomb (tệp ZIP nhỏ → gigabyte khi giải nén) là một mối đe dọa thực sự. | Các trình đọc hiện nay áp dụng giới hạn kích thước giải nén và sử dụng các thư viện an toàn (ví dụ, zipfile của Python có kiểm tra). |
Mẹo Bảo mật cho Nhà phát triển
Luôn xác thực tổng kích thước chưa nén trước khi giải nén một CBZ. Một kiểm tra đơn giản (như trong đoạn mã Python) ngăn chặn các tệp lưu trữ độc hại làm cạn kiệt không gian đĩa hoặc bộ nhớ.
Cách Trình Đọc Thực Sự Hiển Thị CBZ
- Mở tệp lưu trữ – Ứng dụng đọc thư mục trung tâm của ZIP để có chỉ mục nhanh các mục.
- Lọc các tệp hình ảnh – Các mục không phải hình ảnh (
ComicInfo.xml,__MACOSX/, v.v.) sẽ bị bỏ qua. - Sắp xếp theo thứ tự chữ cái – Do đặt tên có số 0 ở đầu, danh sách đã sắp xếp khớp với thứ tự trang mong muốn.
- Phân tích siêu dữ liệu – Nếu tồn tại
ComicInfo.xml, trình đọc sẽ trích xuất các cờ loại trang, tiêu đề, tác giả, v.v., và có thể ẩn các trang được đánh dấu làAdverthoặcDeleted. - Hiển thị trang – Hình ảnh được giải mã (thường với bộ giải mã JPEG/WebP tăng tốc phần cứng trên các máy tính bảng e‑ink hiện đại) và hiển thị từng trang một, với việc tải trước một vài trang tiếp theo để cuộn mượt mà.
- Lưu trạng thái – Vị trí đọc, dấu trang và chú thích được lưu cục bộ hoặc đồng bộ lên đám mây, tùy thuộc vào ứng dụng.
Đó là lý do tại sao CBZ cảm giác nhanh và phản hồi như một PDF gốc, nhưng vẫn hoàn toàn mở và có thể chỉnh sửa.
Kết luận: CBZ’s elegance lies in its simplicity—a plain ZIP that anyone can open, edit, or repurpose. With optional ComicInfo.xml metadata, modern image codecs, and emerging standards, it continues to evolve while staying true to its DRM‑free, cross‑platform roots.