EPUBのベストプラクティス カバー画像の登録方法

多くのEPUBリーダーでは登録されている書籍のアイコンとしてカバー画像を表示します。このカバー画像の登録方法を調べてみました。

1.EPUB2
EPUB2ではカバー画像であることをEPUBリーダに伝えるために、metadateのmeta要素に次のように指定します。

【EPUB2の例】
metadata
<meta name="cover" content="cover-id" />

なお、manifestには、次のようにカバー画像に使用する画像ファイルが登録されていることが前提です。(metaのcontentの値とitemのidの値は一致していること。文字列は可変。)
manifest
<item id="cover-id" href="cover.jpeg" media-type="image/jpeg" />

2.EPUB3
EPUB3では、上の形式のメタデータは廃止されました。ただし、EPUB2のリーダ用との互換性のためにこれを残しておくことができます。そして、EPUB3リーダはmetaの方を無視しなければなりません。[1]

EPUB3の仕様では、manifestのitem要素のproperties属性に「cover-image」という値を指定することでカバー画像であることを示します。EPUB3の方がシンプルになったわけです。

EPUB3では、例えば、cover.jpgというファイルがカバー画像であることを示すには次のように指定します。(idの値は可変)。

【EPUB3の例】
<item properties="cover-image" id="ci" href="cover.jpg" media-type="image/jpeg" />

koboやiBooks3などの新しいEPUB3のリーダは、manifestのitem要素の属性を見ています。

3.Kindle
Kindleは、カバー画像をmetaとitem要素の両方に指定することになっています。

カバー画像を、仮に、id=”cover-id”、ファイル名=”cover_image.jpg” とするとき、Kindleは次のように登録します。

【Kindleの例】
metadata
<meta name="cover" content="cover-id" />

manifest
<item id="cover-id" href="cover.jpg" media-type="image/jpeg" properties="cover-image"/>

4.まとめ
ややこしい話ですが、EPUB3にEPUB2形式のmetaがあっても特に害はないようなので、両方登録しておくとEPUB2/EPUB3で共通になりますので都合が良いと思います。

なお、EPUBの場合、印刷製本した書籍と異なり、①EPUBリーダの書架または書籍一覧に表示されるアイコンとしてのカバー画像、②リーダで表示するときの先頭ページ、③iBooksのように見開き表示したときに初めて表示される画像ページなどの役割が明確になっていません。このあたりについては別途まとめてみたいと考えています。

5.追加:EPUBリーダの実装

iBooks3.0、Readium(0.5)、Adobe Digital Editions2.0では、上記のmetaとmanifestのitem要素の両方に画像を登録しないでも、先頭のxhtmlファイルの内容としてimg要素に画像ファイルを指定すると、書架アイコンにその画像が登録されます。つまり、これらのリーダを対象にする場合はmetaにもmanifestにもカバー画像を登録する必要がなく、先頭のxhtmlページをカバー画像のページとすれば良いことになります。(2012/12/8追記)

6.訂正:Kindle
(12/15)Kindleでは、itemのproperties属性はつけない。つまり、EPUB2方式でした。

[1] 3.4.8 The meta Element (OPF2) [OBSOLETE]
[2] Amazon Kindle Publishing Guidelines
[3] Amazon Kindleパブリッシングガイド(Appendix)日本語サポート