Generate an OpenLayers-based zoomable image of all the pages of an Internet Archive book, laid out as a grid.
Alternatives To Bookmap
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Algorithm Archive2,159
2 months ago95mitPython
A collaborative book on algorithms
Jekyll Archives3951,443256 months ago7March 23, 201939mitRuby
:books: Archive pages for your Jekyll tags and categories.
32 years ago6November 21, 20145mitRuby
an ePub generation library in Ruby
Dart Up And Running Book104
6 years agootherDart
ARCHIVE - The DocBook (XML) and code that make up the O'Reilly book Dart: Up and Running
5 years ago29gpl-2.0C++
Viewer for comic book archives that aims at convenience and simplicity
All Human Knowledge53
7 months agogpl-3.0Python
Like all persons of the Library, I have traveled in my youth; I have wandered in search of a book, perhaps the catalogue of catalogues...
Book Aligner31
2 months ago20mitCoffeeScript
Automatic alignment of books between HathiTrust, Internet Archive, Google Books, etc.
5 days ago21otherJavaScript
A book uploader bot that transfers documents from public libraries such as Google Books, and Panjab Digital Library etc to Internet Archive. Built for Wikimedia Tool Labs.
2 months agomitGo
Download digitized books from Internet Archive and view with IIIF, locally and offline.
7 years agoPython
A book containing your Google search entries
Alternatives To Bookmap
Select To Compare

Alternative Project Comparisons


Generate an OpenLayers-based zoomable image of all the pages of an Internet Archive book, layed out as a grid.

This is a pair of bash scripts that download the JPEG2000 files from a given Internet Archive scanned book, generate a single large image containing all the pages in a grid, and produce an HTML file that gives an OpenLayers-based zoomable view of the whole book. See an example here:

These packages must be available on the path:

To generate a view for a given IA item "abxxxx", there are two steps

  • run "./ abxxxx" - this will download and unzip the JPEG2000s
  • run "./ abxxxx" will generate a uniform JPEG image of each page, using the most common dimensions found among the JPEG2000s. Pages that do not have these dimensions will be cropped or padded to fit. It will then use ImageMagick's montage to stitch the page images into a single image. This can take a very long time (three hours for a 244-page book on a MacBook Pro), and will initially tie up the CPU to a great extent; after a few minutes it will relax its grip and make the machine more responsive. Finally, will run GDAL to generate the tiles and the html file. They will be created in a directory named with the Internet Archive ID.

The example took about three hours to process, and the generated tiles allowed nine levels of zoom and came to 2.2gb. For the example linked above, I have removed the lowest two levels, leaving 200mb of tiles, in order to save server space.

The process of building the large uniform JPEG can use a lot of temporary disk space. Set a TMPDIR environment variable to point to somewhere that has room if you need to (see the ImageMagick FAQ)

I have developed this under OS/X but the tools should all run on Linux, and perhaps on Windows.

Note: I installed jq and gdal with Homebrew. I had trouble with gdal because of conflicts with an earlier attempt to install it from source. I also had trouble adding JPEG2000 support to ImageMagick from Homebrew, and ended up installing this package instead:

Written with StackEdit.

Popular Book Projects
Popular Archive Projects
Popular Learning Resources Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.