How to Package Illustrations Correctly in an EPUB

An illustration is ready for EPUB only when the image is packaged and the XHTML reference resolves to that packaged resource. Seeing it in the editor is not sufficient.

When working on EPUB illustrations, consider a three-chapter travelogue with two inline illustrations and one cover image. The task is complete only when source image location and the final XHTML src target can both be confirmed after the saved output is reopened. An export message by itself does not answer the search question.

Decide what success means for this book

For this example—a three-chapter travelogue with two inline illustrations and one cover image—the first decision is whether source image location has a known starting value. The final decision is whether the final XHTML src target survives export and reopening. Keeping those two moments separate prevents a temporary editor display from becoming the handoff criterion.

Preserve the received manuscript, edit a test copy, and write the EPUB separately. With EPUB illustrations as the goal, those three files keep the source, intentional edits, and packaged book distinct.

The direction is one-way: preserved source, editable duplicate, separately written EPUB, then a reopened EPUB. The method does not recreate the manuscript from the EPUB or treat the package as an editing source.

Build a representative test case

Build the example around a three-chapter travelogue with two inline illustrations and one cover image. Keep the part that could genuinely fail. If the risk concerns case-sensitive filename agreement, include the exact chapter, character, path, or label that creates that risk. Removing it for a cleaner demo would produce an easy pass with no value for the real book.

Check four independent facts

Complete the operation in order

  1. Collect images in a project-local directory. Before moving on, confirm source image location; if it differs from the expected state, correct that step rather than compensating later.
  2. Use consistent relative references. Before moving on, confirm case-sensitive filename agreement; if it differs from the expected state, correct that step rather than compensating later.
  3. Test a copied project in another location. Before moving on, confirm image presence inside the EPUB; if it differs from the expected state, correct that step rather than compensating later.
  4. Check packaged resources and missing counts. Before moving on, confirm the final XHTML src target; if it differs from the expected state, correct that step rather than compensating later.
  5. Open each illustration in two readers. Before moving on, confirm source image location; if it differs from the expected state, correct that step rather than compensating later.

Walk the example from source to handoff

During step 1, collect images in a project-local directory. In the case of a three-chapter travelogue with two inline illustrations and one cover image, check source image location before changing anything else. This prevents leaving an absolute desktop path. If the observation is unknown, repeat that step with the test copy instead of editing the master manuscript.

During step 2, use consistent relative references. In the case of a three-chapter travelogue with two inline illustrations and one cover image, check case-sensitive filename agreement before changing anything else. This prevents guessing the extension from Finder display. If the observation is unknown, repeat that step with the test copy instead of editing the master manuscript.

During step 3, test a copied project in another location. In the case of a three-chapter travelogue with two inline illustrations and one cover image, check image presence inside the EPUB before changing anything else. This prevents assuming a visible cover proves inline images were packaged. If the observation is unknown, repeat that step with the test copy instead of editing the master manuscript.

During step 4, check packaged resources and missing counts. In the case of a three-chapter travelogue with two inline illustrations and one cover image, check the final XHTML src target before changing anything else. This prevents leaving an absolute desktop path. If the observation is unknown, repeat that step with the test copy instead of editing the master manuscript.

During step 5, open each illustration in two readers. In the case of a three-chapter travelogue with two inline illustrations and one cover image, check source image location before changing anything else. This prevents guessing the extension from Finder display. If the observation is unknown, repeat that step with the test copy instead of editing the master manuscript.

What the example showed

The trial produced this observation: The test book exported 2 chapters with writingMode=horizontal and version 1.2. Inspection returned spine=6, images=1, missing=0, nav=true, NCX=true, and valid=true.

That value belongs to the files and settings used for this example. It supports the documented sequence; it does not turn EPUB illustrations into a promise for every manuscript, reading system, or retailer.

The untested boundary is equally important: valid=true is a local package output, not retailer acceptance or identical rendering in every reader. Outside this scope: Copyright clearance, identical rendering in every reader, and retailer acceptance are outside scope. Add retailer preview, device testing, accessibility review, or rights clearance when the book requires those decisions.

The W3C EPUB 3.3 specification defines the EPUB navigation document as a required publication component.

Recover from the three likely mistakes

Decide whether Rune Studio fits

Rune Studio is a candidate when an editor wants manuscript work and EPUB preparation in one Mac application for a project involving a three-chapter travelogue with two inline illustrations and one cover image. Product documentation describes available functions; the observation above documents only this example.

See the product on the Rune Studio website. Keep the adoption boundary explicit: copyright clearance, identical rendering in every reader, and retailer acceptance are outside scope.

Take the next step

Start with this action: collect images in a project-local directory. Then follow the remaining steps until the final XHTML src target can be reproduced from the reopened publication. That is the practical finish line when working on EPUB illustrations.