อัปเดตล่าสุด: 28 กรกฎาคม, 2026

TL;DR CBZ (Comic Book Zip) ไม่ได้เป็นอะไรมากกว่ามาตรฐานไฟล์ ZIP ธรรมดาที่บรรจุชุดของไฟล์รูปภาพตามลำดับ—พร้อมเมตาดาต้าแบบเลือก—ไว้ในคอนเทนเนอร์คอมิกส์ที่ไม่มี DRM. เนื่องจากอาศัยรูปแบบ ZIP ที่แพร่หลาย เครื่องมือบีบอัดใดๆ ก็สามารถเปิดได้ และโปรแกรมอ่านจะเรียงรูปภาพตามตัวอักษรเพื่อแสดงหน้าเป็นลำดับ. CBZ สมัยใหม่มักรวม ComicInfo.xml เพื่อข้อมูลห้องสมุดที่ละเอียด ใช้โค้ดคอดภาพที่มีประสิทธิภาพเช่น WebP/AVIF และแม้กระทั่งฝัง HTML สำหรับคอมิกส์ “enhanced” ที่โต้ตอบได้.
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 แล้วเปลี่ยนชื่อ ความเรียบง่ายนี้ทำให้มันเป็นมาตรฐาน de‑facto สำหรับการ์ตูนดิจิทัลบนพีซี, แท็บเล็ต, และโทรศัพท์.
ภายในไฟล์ 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 (
manifest.json) อาจกลายเป็นสิ่งบังคับ, แต่ผู้อ่านที่มีอยู่ยังคงรับรองComicInfo.xml.
การสร้างและแปลงไฟล์ CBZ (ขั้นตอนต่อขั้นตอน)
1. เตรียมรูปภาพของคุณ
- ส่งออกแต่ละหน้าการ์ตูนเป็นรูปภาพ.
- ตั้งชื่อด้วยตัวเลขที่เติมศูนย์นำหน้า (
001.jpg,002.jpg, …) เพื่อรับประกันการจัดเรียงที่ถูกต้อง. - เลือกโคเดกที่เหมาะกับผู้ชมของคุณ: JPEG สำหรับขนาดที่เล็กที่สุด, PNG สำหรับศิลปะแบบไม่มีการสูญเสีย, WebP/AVIF สำหรับการบีบอัดสมัยใหม่คุณภาพสูง.
2. (ไม่บังคับ) สร้างเมตาดาต้า
เครื่องมือเช่น ComicTagger, cbr2cbz, หรือสคริปต์ที่กำหนดเองสามารถ auto‑populate 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 |
|---|---|---|
| การจัดจำหน่ายแบบเว็บ‑first | ผู้จัดพิมพ์โฮสต์ CBZ บนคลาวด์สตอเรจพร้อม pre‑signed URLs. | การดาวน์โหลดที่เร็วขึ้น ปราศจาก DRM; การเผยแพร่ด้วยตนเองที่ง่ายขึ้น. |
| การ์ตูนแบบไฮบริด/โต้ตอบ | การเพิ่ม index.html + แอสเซ็ตภายในไฟล์อาร์ไคฟ์สร้างการ์ตูน “เสริม” (เสียง, วิดีโอ, HTML5). | ผู้อ่านที่รองรับเว็บวิวสามารถเรนเดอร์ชั้นมัลติมีเดียได้. |
| การนำ WebP & AVIF มาใช้ | ~15 % ของการเปิดตัวใหม่ (2024) ใช้ codecs เหล่านี้. | ลดขนาด 30‑50 % ขณะยังคงคุณภาพ—สำคัญสำหรับแบนด์วิธมือถือ. |
| เมตาดาต้าที่สร้างโดย AI | เครื่องมือเช่น ComicTagger ตอนนี้ใช้ OCR + LLMs เพื่อเติมข้อมูลใน 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 ที่เร่งด้วยฮาร์ดแวร์บนแท็บเล็ตอี‑อินก์สมัยใหม่) และแสดงทีละหน้า, พร้อมการดึงข้อมูลล่วงหน้าของหลายหน้าถัดไปเพื่อการเลื่อนที่ราบรื่น.
- บันทึกสถานะ – ตำแหน่งการอ่าน, ที่คั่นหน้า, และคำอธิบายภาพจะถูกบันทึกไว้ในเครื่องหรือซิงค์ไปยังคลาวด์ ขึ้นอยู่กับแอปพลิเคชัน.
กระบวนการนั้นคือเหตุผลที่ CBZ รู้สึกเร็วและตอบสนองได้เทียบเท่ากับ PDF ดั้งเดิม, แต่ยังคงเปิดและแก้ไขได้อย่างสมบูรณ์.
สรุป: ความงดงามของ CBZ อยู่ที่ความเรียบง่าย—ZIP ธรรมดาที่ใครก็สามารถเปิด, แก้ไข, หรือปรับใช้ใหม่ได้. ด้วยเมตาดาต้า ComicInfo.xml ที่เป็นตัวเลือก, ตัวถอดรหัสภาพสมัยใหม่, และมาตรฐานที่กำลังเกิดขึ้น, มันยังคงพัฒนาอย่างต่อเนื่องในขณะที่ยังคงยึดมั่นในรากฐานที่ปราศจาก DRM และข้ามแพลตฟอร์ม.