সর্বশেষ আপডেট: 28 জুলাই, 2026

Inside the CBZ - Understanding the Anatomy of Digital Comics

TL;DR CBZ (Comic Book Zip) কেবল একটি স্ট্যান্ডার্ড ZIP আর্কাইভ যা ধারাবাহিক ইমেজ ফাইলের একটি সিরিজ—অতিরিক্ত ঐচ্ছিক মেটাডেটা সহ—একটি একক, DRM‑মুক্ত কমিক কন্টেইনারে বান্ডল করে। এটি ব্যাপকভাবে ব্যবহৃত ZIP ফরম্যাটের উপর নির্ভর করার ফলে, যেকোনো আর্কাইভিং টুল এটি খুলতে পারে, এবং রিডারগুলি সহজে ছবিগুলোকে বর্ণানুক্রমিকভাবে সাজিয়ে পৃষ্ঠাগুলো ক্রমানুসারে প্রদর্শন করে। আধুনিক CBZ-গুলো প্রায়ই সমৃদ্ধ লাইব্রেরি ডেটার জন্য ComicInfo.xml অন্তর্ভুক্ত করে, WebP/AVIF এর মতো কার্যকরী ইমেজ কোডেক ব্যবহার করে, এবং এমনকি ইন্টারেক্টিভ “enhanced” কমিকের জন্য HTML এমবেড করে।


CBZ ঠিক কী?

  • নাম: Comic Book Zip – একটি ZIP ফাইল যার .cbz এক্সটেনশন আছে।
  • MIME টাইপ: application/vnd.comicbook+zip (২০১২ সালে IANA-তে নিবন্ধিত)।
  • উৎপত্তি: ComicRack কমিউনিটি (২০০৫‑২০০৮) দ্বারা জনপ্রিয় করা হয়েছিল, যা CBR বা PDF এর মতো মালিকানাধীন ফরম্যাটের ওপেন‑সোর্স বিকল্প।
  • ক্রস‑প্ল্যাটফর্ম: যেকোনো ZIP‑সামঞ্জস্যপূর্ণ ইউটিলিটি (7‑Zip, WinRAR, macOS Archive Utility, 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.xmlComicRack স্কিমা অনুসরণকারী ঐচ্ছিক XMLশিরোনাম, লেখক, সিরিজ, ইস্যু নম্বর, ভাষা, পেজ‑টাইপ ফ্ল্যাগ এবং থাম্বনেইল ডেটা সংরক্ষণ করে। শক্তিশালী লাইব্রেরি ম্যানেজমেন্টকে সক্ষম করে।
কভার ইমেজ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, ইত্যাদি) পাঠকদের বিজ্ঞাপন লুকাতে, শুধুমাত্র গল্পের পেজ দেখাতে, অথবা কাস্টম কভার থাম্বনেইল প্রদর্শন করতে দেয়।
  • ফিউচার‑প্রুফিং – ডিজিটাল কমিক্স ইনিশিয়েটিভ যখন CBZ v2.0 স্পেসিফিকেশন তৈরি করছে, একটি ম্যানিফেস্ট ফাইল (manifest.json) বাধ্যতামূলক হতে পারে, তবে বিদ্যমান রিডারগুলো এখনও ComicInfo.xmlকে সম্মান করবে।

CBZ ফাইল তৈরি ও রূপান্তর (ধাপে‑ধাপে)

১. আপনার ছবিগুলি প্রস্তুত করুন

  • প্রতিটি কমিক পেজকে একটি ইমেজ হিসেবে এক্সপোর্ট করুন।
  • সঠিক সাজানোর জন্য শূন্য‑প্যাডেড নম্বর (001.jpg, 002.jpg, …) দিয়ে নাম দিন।
  • আপনার পাঠকের জন্য উপযুক্ত কোডেক নির্বাচন করুন: সর্বনিম্ন সাইজের জন্য JPEG, লসলেস আর্টের জন্য PNG, আধুনিক, উচ্চ‑গুণমানের কম্প্রেশনের জন্য WebP/AVIF।

২. (ঐচ্ছিক) মেটাডেটা তৈরি করুন

ComicTagger, cbr2cbz, অথবা কাস্টম স্ক্রিপ্টের মতো টুলগুলি OCR + LLM ব্যবহার করে ComicInfo.xml স্বয়ংক্রিয়ভাবে পূরণ করতে পারে। এই ধাপটি ঐচ্ছিক তবে বড় লাইব্রেরির জন্য অত্যন্ত সুপারিশ করা হয়।

৩. জিপ করুন

# 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 করুন।

৪. আর্কাইভ যাচাই করুন

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 চালালে পৃষ্ঠার ফাইলনামগুলির একটি পরিষ্কার, ক্রমানুসারী তালিকা মুদ্রণ করা উচিত।

৫. PDF-এ রূপান্তর করুন (যদি আপনি প্রিন্টযোগ্য সংস্করণ চান)

unzip -q MyComic.cbz -d tmp_pages
convert tmp_pages/*.jpg MyComic.pdf   # ImageMagick's `convert`
rm -r tmp_pages

প্রবণতা, নিরাপত্তা, এবং CBZ এর ভবিষ্যৎ

প্রবণতাকি ঘটছেCBZ-তে প্রভাব
ওয়েব‑প্রথম বিতরণপ্রকাশকরা ক্লাউড স্টোরেজে প্রি‑সাইনড URL সহ CBZ হোস্ট করে।দ্রুত, DRM‑মুক্ত ডাউনলোড; সহজ স্ব-প্রকাশনা।
হাইব্রিড/ইন্টারেক্টিভ কমিক্সআর্কাইভের ভিতরে index.html + অ্যাসেট যোগ করলে “এনহ্যান্সড” কমিক্স তৈরি হয় (অডিও, ভিডিও, HTML5)।যে রিডারগুলো ওয়েব ভিউ সমর্থন করে তারা মাল্টিমিডিয়া লেয়ার রেন্ডার করতে পারে।
WebP ও AVIF গ্রহণ~15 % নতুন রিলিজ (২০২৪) এই কোডেকগুলো ব্যবহার করে।গুণমান বজায় রেখে 30‑50 % সাইজ কমানো—মোবাইল ব্যান্ডউইথের জন্য গুরুত্বপূর্ণ।
AI‑উৎপন্ন মেটাডেটাটুলস যেমন ComicTagger এখন OCR + LLM ব্যবহার করে ComicInfo.xml পূরণ করে।উন্নত অনুসন্ধানযোগ্যতা, স্বয়ংক্রিয় ট্যাগিং, এবং লাইব্রেরি সংগঠন।
ক্লাউড‑সিঙ্ক রিডিং অ্যাপসChunky, Perfect Viewer, এবং অন্যান্য অ্যাপস Firebase/iCloud এর মাধ্যমে অগ্রগতি সিঙ্ক করে।ফোন, ট্যাবলেট এবং ডেস্কটপে নির্বিঘ্ন রিডিং।
স্ট্যান্ডার্ডাইজেশন পুশ (CBZ v2.0)DCI একটি বাধ্যতামূলক manifest.json, মাল্টি‑রেজোলিউশন অ্যাসেট এবং একটি <DRM> ফ্ল্যাগ প্রস্তাব করে।এটি উচ্চ‑DPI ডিভাইসের জন্য CBZ কে আরও শক্তিশালী করবে এবং ঐচ্ছিক অধিকার ব্যবস্থাপনা প্রদান করবে।
সিকিউরিটি সচেতনতাZip‑bomb আক্রমণ (ছোট ZIP → এক্সট্র্যাক্ট করার সময় গিগাবাইটে রূপান্তরিত) একটি বাস্তব হুমকি।রিডাররা এখন এক্সট্র্যাকশন সাইজের সীমা প্রয়োগ করে এবং নিরাপদ লাইব্রেরি ব্যবহার করে (যেমন, Python-এর zipfile চেকসহ)।

ডেভেলপারদের জন্য নিরাপত্তা টিপস

CBZ এক্সট্র্যাক্ট করার পূর্বে সর্বমোট আনকমপ্রেসড সাইজ সর্বদা যাচাই করুন। একটি সহজ চেক (Python স্নিপেটের মতো দেখানো হয়েছে) ক্ষতিকারক আর্কাইভগুলোকে ডিস্ক স্পেস বা মেমরি শেষ করে ফেলা থেকে রোধ করে।


একটি রিডার কীভাবে প্রকৃতপক্ষে একটি CBZ রেন্ডার করে

  1. আর্কাইভ খুলুন – অ্যাপটি ZIP সেন্ট্রাল ডিরেক্টরি পড়ে এন্ট্রিগুলোর দ্রুত সূচি পেতে।
  2. ইমেজ ফাইল ফিল্টার করুন – নন‑ইমেজ এন্ট্রি (ComicInfo.xml, __MACOSX/, ইত্যাদি) উপেক্ষা করা হয়।
  3. বর্ণানুক্রমে সাজান – শূন্য‑প্যাডেড নামকরণের কারণে, সাজানো তালিকাটি কাঙ্ক্ষিত পেজ ক্রমের সাথে মেলে।
  4. মেটাডেটা পার্স করুন – যদি ComicInfo.xml থাকে, রিডার পেজ‑টাইপ ফ্ল্যাগ, শিরোনাম, লেখক ইত্যাদি বের করে এবং Advert অথবা Deleted হিসেবে চিহ্নিত পেজগুলো লুকিয়ে রাখতে পারে।
  5. পেজ রেন্ডার করুন – ইমেজগুলি ডিকোড করা হয় (প্রায়ই আধুনিক ই‑ইঙ্ক ট্যাবলেটে হার্ডওয়্যার‑অ্যাক্সেলারেটেড JPEG/WebP ডিকোডার ব্যবহার করে) এবং এক‑এক করে প্রদর্শিত হয়, মসৃণ স্ক্রলিংয়ের জন্য পরবর্তী কয়েকটি পেজের প্রি‑ফেচিং সহ।
  6. অবস্থা সংরক্ষণ করুন – রিডিং পজিশন, বুকমার্ক এবং অ্যানোটেশনগুলি লোকালি সংরক্ষণ করা হয় অথবা অ্যাপের উপর নির্ভর করে ক্লাউডে সিঙ্ক করা হয়।

এই পাইপলাইনই কারণ যে CBZ একটি নেটিভ PDF-এর মতো দ্রুত এবং প্রতিক্রিয়াশীল অনুভব করে, তবুও সম্পূর্ণভাবে ওপেন এবং সম্পাদনাযোগ্য থাকে।


সারাংশ: CBZ-এর সৌন্দর্য তার সরলতায়—একটি সাধারণ ZIP যা যে কেউ খুলতে, সম্পাদনা করতে বা পুনঃব্যবহার করতে পারে। ঐচ্ছিক ComicInfo.xml মেটাডেটা, আধুনিক ইমেজ কোডেক এবং উদীয়মান স্ট্যান্ডার্ডের সঙ্গে, এটি বিকশিত হতে থাকে এবং DRM‑মুক্ত, ক্রস‑প্ল্যাটফর্ম মূলের প্রতি সত্য থাকে।