CBZ 2.0 - A Better Comic Book Format

Also known as:

CBZ (and derivatives) have been used as an e-book format for comic books for quite a long time. While they work well on larger screens, using them on smaller handheld devices is very hard.

Many e-book reader apps solve this problem differently. Some use features like panel zoom and bubble zoom. They work, but not perfectly.

This proposed second iteration of Comic Book Archive is an attempt to solve some, if possibly most, of these problems.

Structure

In structure, this format is similar to CBZ except for an additional content.xml file in the archive root. This allows these files to be backward compatible.

Content.xml

The content.xml file will contain several sections. A rudimentary example here:

<?xml version="1.0" encoding="utf-8"?>
<package version="2.0">
  <metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
    <dc:title>Title of the comic book</dc:title>
    ... Other metadata
  </metadata>
  <content>
    <panels>
      <panel id="panel-1" href="1.png" frame="5 5 30 30" />
      <panel href="1.png" frame="40 40 30 30" />
      ...more panels
      <panel href="5.png" frame="5 5 30 100" />
      ...
    </panels>
    <bubbles>
      <bubble href="1.png" frame="5 5 30 30" parent="#panel-1" />
      <bubble href="1.png" frame="40 40 30 30" />
      ...more bubbles
      <bubble href="5.png" frame="5 5 30 100">
        Optional content in the bubble for screen reader.
      </bubble>
    </bubbles>
  </content>
</package>

Let's dissect the content.xml

Metadata

The metadata section contains all the metadata of the comic book. I'm using IPDF's metadata convention here.

Content

Panels

This section defines all the panels in order. href points to the file from which we'll get the panel. frame contains values: x, y, width, and height.

Bubbles

Bubbles get defined here almost exactly like panels. Optionally, they can also have the content in them to allow the screen readers to read the comics, and with a parent key, a parent panel can be defined.

Usage

Using the structure defined above, e-book reader applications can develop the following features:

Panel Navigation

Apps can get panels from images by using the data from content.xml and allow users to navigate panel by panel. This allows users to read comics more easily on hand-held devices.

Bubble Zoom

Using the bubbles definitions apps can enable bubble-zoom more efficiently without any image recognition burden.

Additionally, It can be used to provide better accessibility for people with disabilities affecting their reading capabilities.