Skip to content

Repository files navigation

Dezoomify

Dezoomify cover image

Download zoomable images

Dezoomify extracts full high-resolution images from online zoomable image interfaces. It works with several zoomable image tools, from several different websites (see the list below). It takes as input the URL of a a zoomable image and gives as output an image that you can download (by right-clicking on it, and choosing Save Image as...).

In order to find the URL of the zoomable that dezoomify requires, you can install the dezoomify browser extension. Alternatively, you can also try to find the zoomable image URL yourself.

Try it

If you are not interested in the source code and just want to assemble tiles of (dezoomify) a zoomify-powered image, go there : unzoomify an image

Troubleshooting

FAQ

If you have problems while downloading an image, then read the FAQ.

Reporting issues

Your bug reports and feature requests are welcome! Please go the the Github issue page of the project, and explain your problem. Please be clear, and give the URL of the page containing the image dezoomify failed to process.

Supported zoomable image formats

The following formats are supported by dezoomify:

The most prominent supported websites with live compatibility tests include :

  • Arts & Culture (artsandculture.google.com)
  • National Gallery (nationalgallery.org.uk)
  • Van Gogh Museum Micrio (vangoghmuseum.nl)
  • London Museum collections (londonmuseum.org.uk)
  • Philadelphia Museum of Art (philamuseum.org)
  • Liechtenstein Collections (liechtensteincollections.at)
  • National Gallery of Victoria (ngv.vic.gov.au)
  • National Library of Australia (nla.gov.au)
  • CSNTM manuscripts (collections.csntm.org)
  • Austrian National Library (api.onb.ac.at)
  • Memorix TopViewer (images.memorix.nl)
  • Beeldbank Groningen (beeldbankgroningen.nl)
  • SALHA (salha.nl)
  • Archief Zaanstad (archief.zaanstad.nl)
  • Regionaal Archief Zutphen (erfgoedcentrumzutphen.nl)
  • Noord-Hollands Archief (noord-hollandsarchief.nl)
  • Historisch Archief Midden-Groningen (historischarchief.midden-groningen.nl)
  • BLB Visual Library Server (digital.blb-karlsruhe.de)
  • Hungaricana postcard gallery (gallery.hungaricana.hu)
  • Oklahoma State Digital Collections (dc.library.okstate.edu)
  • University of Washington Mirador (digitalcollections.lib.washington.edu)
  • krpano (krpano.com)
  • Bibliotheques specialisees de Paris (bibliotheques-specialisees.paris.fr)
  • Academia Sinica Bronze Rubbings (bronze.asdc.sinica.edu.tw)
  • FSI Viewer (neptunelabs.com)
  • HNG IIPImage (image.hng-data.org)
  • Uffizi XLimage (uffizicloud.centrica.it)
  • Cartesius/NGI ArcGIS MapServer (wmts.ngi.be)
  • ArcGIS World Imagery WMTS (server.arcgisonline.com)
  • BLB generic tile template (digital.blb-karlsruhe.de)
  • Alabama Maps LizardTech (cartweb.geography.ua.edu)
  • OpenSeadragon Zoomify (openseadragon.github.io)
  • National Library of Scotland Auchinleck (auchinleck.nls.uk)
  • National Library of Scotland map-view (map-view.nls.uk)
  • pnav collection.ethnomuseum.ru (collection.ethnomuseum.ru)

Dezoomify also has a generic dezoomer. If the zoomable image format is simple enough, you just have to enter a pattern of tile URL, and dezoomify will be able to work with it.

Screenshots

dezoomify downloading an image

Video tutorial

Video tutorial for dezzomify

Programming Languages

The aim of the script is to do as much as possible in Javascript (with the HTML5 <canvas> tag), and only the network-related stuffs on the server side. The only little piece of server-side code that remains in the code is just a proxy, used to circumvent the same-origin policy. The proxy is implemented in Javascript as a Cloudflare Pages Function (functions/proxy.js) and reused by the Node app through node-app/proxy.js.

Wikimedia

This script on wikimedia : Zoomify in the help about zoomable Images on wikimedia

Local development

The browser app is static, but it expects a /proxy endpoint. Cloudflare Pages serves functions/proxy.js at that route. The deterministic test server in tests/fixture-server.js also provides a fixture-backed /proxy route for local tests.

Run deterministic tests from tests:

npm test

Run live compatibility checks manually:

npm run test:live

Live compatibility tests intentionally touch real websites and run the browser app against each URL. They fail when automatic detection, metadata loading, or the first tile load breaks. Do not use live-only behavior as the sole regression coverage for a dezoomer; keep deterministic fixtures in tests/dezoomers.spec.js for protocol behavior, and use tests/live-compat.spec.js to notice when real-world examples have changed.

GPL

Copyright © 2011-2017 Lovasoa

This file is part of Dezoomify.

Dezoomify is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Dezoomify is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Dezoomify; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA*/

About

Dezoomify is a web application to download zoomable images from museum websites, image galleries, and map viewers. Many different zoomable image technologies are supported.

Topics

Resources

Stars

819 stars

Watchers

21 watching

Forks

Sponsor this project

Used by

Contributors

Languages