How to Add or Change the Cover Image in an EPUB
A cover image is required by KDP, Kobo Writing Life, and Apple Books — and it shows on every e-reader library shelf. Here's how to add or replace a cover in any EPUB using Calibre (easiest) or Sigil (full control). Both are free.
Method 1: Calibre Metadata Editor (Easiest)
For most cases, Calibre's metadata editor is the fastest way to set or replace a cover:
- Select the book in Calibre's library.
- Press E (or right-click → Edit metadata individually).
- In the metadata dialog, click the cover image area on the right.
- Click Browse to select a new image file (JPEG or PNG), or Download cover to fetch one from online sources.
- Click OK. Calibre embeds the image as the EPUB cover.
This updates both the cover image file in the EPUB and the OPF cover metadata reference. It's the recommended approach for quick cover updates.
Method 2: Sigil (Full Control)
Sigil lets you control exactly how the cover is embedded — useful if Calibre's output doesn't satisfy validator requirements:
- Open the EPUB in Sigil.
- In the Book Browser, right-click Images/ → Add Existing Files. Select your cover JPEG.
- Right-click the new image → Add Semantics → Cover Image. Sigil adds
properties="cover-image"to the manifest entry for you. - Open the OPF file (content.opf) in Code View. In the
<manifest>, confirm the image has an entry:<item id="cover-image" href="Images/cover.jpg" media-type="image/jpeg" properties="cover-image"/> - In the
<metadata>section, add or update the cover reference:<meta name="cover" content="cover-image"/> - Create or update the cover HTML page (cover.xhtml) that displays the image for readers that show a cover page.
- Save and validate with EPUBCheck (Tools → Run All Checks).
Method 3: Any ZIP Tool (No EPUB Software)
An EPUB is a ZIP archive, so replacing an existing cover needs no special software:
- Rename
book.epubtobook.zipand extract it. - Overwrite the existing cover file (usually
Images/cover.jpg) with your new image, keeping the same filename so the manifest and cover page still point at it. - If you are adding a cover rather than replacing one, also add the manifest item and
<meta name="cover">entry shown in the Sigil method. - Repack with
mimetypeas the first, uncompressed entry:zip -X0 ../book.epub mimetype && zip -rX9 ../book.epub . --exclude mimetypefrom inside the extracted folder.
Cover Image Requirements by Platform
| Platform | Minimum Size | Recommended Size | Format |
|---|---|---|---|
| Amazon KDP | 1000 × 625 px | 2560 × 1600 px | JPEG |
| Apple Books | 1400 px on shortest side | 2500 × 1563 px | JPEG or PNG |
| Kobo Writing Life | 800 × 1000 px | 1600 × 2400 px | JPEG or PNG |
| Draft2Digital | 1600 × 2400 px | 2400 × 3600 px | JPEG or PNG |
| Smashwords | 1600 × 2400 px | 2400 × 3600 px | JPEG or PNG |
Use a 2:3 (6:9) portrait aspect ratio as the standard. KDP's 1600×2560 px at 72 DPI is widely accepted across all platforms. Save in sRGB (devices render CMYK incorrectly) and keep the file under about 500 KB — JPEG for photographic covers, PNG only if you need lossless line art.
The Cover HTML Page
Most EPUB readers display a cover page when the book is opened. This requires a separate XHTML file (cover.xhtml) that displays the cover image full-page:
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Cover</title>
<style>
body { margin: 0; padding: 0; }
img { max-width: 100%; height: auto; display: block; }
</style>
</head>
<body>
<img src="../Images/cover.jpg" alt="Cover"/>
</body>
</html>
Reference this file first in the OPF <spine> so it appears as the opening page.
Why the Cover Shows as Blank in Some Readers
If the cover shows in Calibre but not on the Kindle or Kobo device:
- The OPF manifest entry is missing the
properties="cover-image"attribute (EPUB 3). - The
<meta name="cover">element is missing (EPUB 2 compatibility). - The cover image file size is too large — Kindle has a 127 KB limit per image for older models.
- The cover XHTML file is not listed first in the spine.
- The
contentattribute of<meta name="cover">does not match the manifest itemidexactly — the match is case-sensitive. - The reader is showing a cached thumbnail. Calibre and some devices cache covers; remove the book from the library and re-add it to refresh.
Converting a PDF to EPUB? toolkit.bot generates EPUBs with properly embedded cover metadata.
Convert PDF to EPUB →