آخر تحديث: 28 يوليو، 2026

ملخص 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، Linux
unzip). لا يلزم أي برنامج خاص لتفقد المحتويات.
في الواقع، ملف CBZ هو مجرد مجلد من الصور (JPEG، PNG، WebP، إلخ) مضغوط ومعاد تسميته. هذه البساطة هي السبب في كونه المعيار الفعلي للقصص المصورة الرقمية على الحواسيب، الأجهزة اللوحية، والهواتف.
داخل ملف 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 في الجذر | يُستخدم من قبل العديد من التطبيقات كصورة مصغرة للقصص المصورة في المعارض. |
| أسماء ملفات يونيكود | يدعم ZIP الحديث UTF‑8 | ضروري للعناوين غير اللاتينية والقصص المصورة الدولية. |
| دليل ZIP المركزي | الفهرس في نهاية الأرشيف | يقوم القارئ بقراءة هذا لبناء قائمة الصفحات بسرعة؛ قد يتسبب الفساد هنا في كسر ملف CBZ بالكامل. |
نظرًا لأن الأرشيف يضغط فقط الصور المضغوطة مسبقًا، فإن الحجم النهائي عادةً ما يكون مجرد مجموع الملفات الأصلية بالإضافة إلى بضع kilobytes من عبء 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، إلخ) تسمح للقراء بإخفاء الإعلانات، عرض صفحات القصة فقط، أو إظهار صورة مصغرة مخصصة للغلاف. - التحضير للمستقبل – مع إعداد مبادرة القصص المصورة الرقمية لمواصفة 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 على التخزين السحابي باستخدام روابط موقعة مسبقًا. | تنزيلات أسرع وخالية من DRM؛ نشر ذاتي أسهل. |
| قصص مصورة هجينة/تفاعلية | إضافة index.html + الأصول داخل الأرشيف يخلق قصصًا مصورة “محسّنة” (صوت، فيديو، HTML5). | القُرّاء الذين يدعمون عرض الويب يمكنهم عرض طبقات الوسائط المتعددة. |
| اعتماد WebP و AVIF | ~15 % من الإصدارات الجديدة (2024) تستخدم هذه الترميزات. | تقليل الحجم بنسبة 30‑50 % مع الحفاظ على الجودة—أمر حاسم لعرض النطاق الترددي للهواتف المحمولة. |
| بيانات وصفية مُولدة بواسطة الذكاء الاصطناعي | أدوات مثل ComicTagger الآن تستخدم OCR + LLMs لملء ComicInfo.xml. | قابلية اكتشاف أفضل، وضع علامات آلي، وتنظيم المكتبة. |
| تطبيقات القراءة المتزامنة عبر السحابة | Chunky و Perfect Viewer وغيرها تُزامن التقدم عبر Firebase/iCloud. | قراءة سلسة عبر الهواتف، الأجهزة اللوحية، وأجهزة الكمبيوتر المكتبية. |
| دفع التوحيد (CBZ v2.0) | تقترح DCI ملف manifest.json إلزاميًا، أصولًا متعددة الدقة، وعلم <DRM>. | سيجعل CBZ أكثر صلابة للأجهزة ذات الدقة العالية (high‑DPI) وإدارة حقوق اختيارية. |
| الوعي الأمني | هجمات القنابل المضغوطة (ZIP صغير → جيجابايت عند فك الضغط) تشكل تهديدًا حقيقيًا. | القراء الآن يفرضون حدود حجم الاستخراج ويستخدمون مكتبات آمنة (مثل zipfile في بايثون مع الفحوصات). |
نصيحة أمان للمطورين
تحقق دائمًا من إجمالي حجم الملفات غير المضغوطة قبل استخراج ملف CBZ. فحص بسيط (كما هو موضح في مقتطف بايثون) يمنع الأرشيفات الضارة من استنزاف مساحة القرص أو الذاكرة.
كيف يقوم القارئ فعليًا بعرض ملف CBZ
- فتح الأرشيف – يقرأ التطبيق دليل ZIP المركزي للحصول على فهرس سريع للمدخلات.
- تصفية ملفات الصور – يتم تجاهل المدخلات غير الصورية (
ComicInfo.xml,__MACOSX/, إلخ). - الترتيب أبجديًا – بسبب تسمية ذات أصفار بادئة، تتطابق القائمة المرتبة مع ترتيب الصفحات المقصود.
- تحليل البيانات الوصفية – إذا كان
ComicInfo.xmlموجودًا، يستخرج القارئ علامات نوع الصفحات، العنوان، المؤلف، إلخ، وقد يخفي الصفحات المعلَّمة بـAdvertأوDeleted. - عرض الصفحات – يتم فك ترميز الصور (غالبًا باستخدام مفككات JPEG/WebP المدعومة بالأجهزة على أجهزة اللوحية الحديثة ذات الحبر الإلكتروني) وعرضها واحدةً تلو الأخرى، مع جلب مسبق للصفحات القليلة التالية لضمان سلاسة التمرير.
- حفظ الحالة – يتم حفظ موضع القراءة والإشارات المرجعية والتعليقات محليًا أو مزامنتها مع السحابة، حسب التطبيق.
ذلك هو السبب في أن CBZ يشعر بالسرعة والاستجابة مثل ملف PDF الأصلي، ومع ذلك يظل مفتوحًا بالكامل وقابلًا للتحرير.
الخلاصة: تكمن أناقة CBZ في بساطتها—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.