Coder Social home page Coder Social logo

lovasoa / dezoomify-rs Goto Github PK

View Code? Open in Web Editor NEW
625.0 17.0 61.0 8.68 MB

Zoomable image downloader for Google Arts & Culture, Zoomify, IIIF, and others

Home Page: https://dezoomify-rs.ophir.dev

License: GNU General Public License v3.0

Rust 99.83% HTML 0.17%
image zoomable-images museum downloader dezoomify piracy google-arts-culture iiif deepzoom zoomify

dezoomify-rs's Introduction

Continuous Integration

dezoomify-rs is a tiled image downloader. Some webpages present high-resolution zoomable images without a way to download them. These images are often tiled: the original large image has been split into smaller individual image files called tiles. The only way to download such an image is to download all the tiles separately and then stitch them together. This process can be automated by a tiled image downloader.

The most common tiled image downloader is probably dezoomify, an online tool which is very easy to use.

The goal of this project is not to replace the traditional dezoomify. However, some images are so large that they can't be efficiently downloaded and displayed inside a web browser. Other times, a website tries to protect its tiles by refusing access to them when certain HTTP headers are not set to the right values. dezoomify-rs is a desktop application for Windows, MacOs and linux that does not have the same limitations as the online zoomify. dezoomify-rs also lets the user choose between several image formats, whereas in dezoomify, you can only save the image as PNG.

dezoomify-rs supports several zoomable image formats, each backed by a dedicated dezoomer. The following dezoomers are currently available:

  • Google Arts & Culture supports downloading images from artsandculture.google.com;
  • zoomify supports the popular zoomable image format Zoomify.
  • deepzoom supports Microsoft's DZI format (Deep Zoom Image), that is often used with the seadragon viewer.
  • IIIF supports the widely used International Image Interoperability Framework format.
  • Zoomify PFF supports the old zoomify single-file image format.
  • Krpano supports the krpano panorama viewer
  • IIPImage supports the iipimage image format
  • NYPLImage supports the nypl image format
  • generic For when the tile URLs follow a simple pattern.
  • custom for advanced users. It allows you to specify a custom tile URL format that can contain multiple variables. This gives you the most flexibity, but requires some manual work.

Screenshots

dezoomify-rs screenshot

Usage instructions

Download dezoomify-rs

First of all, you have to download the application.

  1. Go to the the latest release page,
  2. download the version that matches your operating system (Windows, MacOS, or Linux),
  3. Extract the binary from the compressed file.

On some operating systems, you may have to authorize the application execution before being able to launch it. See how to do in MacOS.

Install via Homebrew

As an alternative to installing the binary directly, on macOS and Linux dezoomify-rs is available via the Homebrew package manager. It can be installed with the command brew install dezoomify-rs.

Supported output image formats

Dezoomify-rs supports multiple output image formats. The format to use is determined by the name of the output file. For instance, entering dezoomify-rs http://example.com/ my_image.png on the command line will create a PNG image.

Each image format encoder has a distinct set of features and limitations :

  • PNG images are compressed losslessly, which means that the output image quality is (very slightly) better than JPEG, at the expense of much larger file sizes. The PNG encoder in dezoomify-rs can create very large images; it is not limited by the available memory on your computer. This format is chosen by default when the image is very large, or its size is not known in advance.
  • JPEG is the most common image format. JPEG images cannot be more than 65,535 pixels wide or high. This format is chosen be default for images that fit within this limit. The JPEG encoder in dezoomify-rs requires the whole image to fit in memory on your computer.
  • All formats supported by image-rs are also supported.
  • IIIF, which allows you to re-create a zoomable image locally. This is the recommended output format when your image is very large (multiple hundreds of megapixels), since most image viewers do not accept huge PNGs or JPEGs. If the output path ends with .iiif, a folder will be created instead of a single file, with its structure following the IIIF specification. A file called viewer.html will be created inside this folder, which you can open in your browser to view the image.

Tile cache

By default, dezoomify-rs works entirely in memory, which is very fast. However, the latest versions added the possibility to use a "tile cache". When you launch dezoomify-rs from the commandline with dezoomify-rs --tile-cache my_caching_folder http://myurl.com, it will save all the image tiles it downloads to the specified folder. If the download is interrupted before the end, you will be able to resume it later by specifying the same tile cache folder. A tile cache also allows you to manually get the individual tiles if you want to stitch them manually.

Dezoomers

Google Arts Culture

In order to download images from google arts and culture, just open dezoomify-rs, and when asked, enter the URL of a viewing page, such as https://artsandculture.google.com/asset/light-in-the-dark/ZQFouDGMVmsI2w

Zoomify

You have to give dezoomify-rs an url to the ImageProperties.xml file. You can use dezoomify-extension to find the URL of this file.

Alternatively, you can find it out manually by opening your network inspector. If the image tile URLs have the form http://example.com/path/to/TileGroup1/1-2-3.jpg, then the URL to enter is http://example.com/path/to/ImageProperties.xml.

IIIF

The IIIF dezoomer takes the URL of an info.json file as input.

You can use dezoomify-extension to find the URL of this file.

Alternatively, you can find this url in your browser's network inspector when loading the image.

DeepZoom

The DeepZoom dezoomer takes the URL of a dzi file as input, which you can find using dezoomify-extension.

You can find this url in your browser's network inspector when loading the image. If the image tile URLs have the form http://test.com/y/xy_files/1/2_3.jpg, then the URL to enter is http://test.com/y/xy.dzi.

Zoomify PFF

PFF is an old zoomable image file format format developed by zoomify. You can give a pff meta-information URL (one that contains requestType=1) to dezoomify-rs and it will download it.

Krpano

Krpano is a zoomable image format often used for panoramas, virtual tours, photoshperes, and other 3d zoomable images. dezoomify-rs supports downloading individual image planes from such images. You need to provide the xml meta-information file for the image.

Nypl

The digital collections of New York's Public Library use their own zoomable image format, which dezoomify-rs supports. Some images have a high-resolution version available, and work with this software. Others do not, and can be downloaded by simply right-clicking on them in your browser. To download an image, just enter the URL of its viewer page in dezoomify-rs, like for example:

https://digitalcollections.nypl.org/items/a28d6e6b-b317-f008-e040-e00a1806635d

IIPImage

IIPImage is an image web server that implements the Internet Imaging Protocol. Such images are easily recognizable by their tile URLs, which contain FIF=. You can pass an URL containing FIF= to dezoomify-rs to let it download the image.

Generic

You can use this dezoomer if you know the format of tile URLs. For instance, if you noticed that the URL of the first tile is

http://example.com/my_image/image-0-0.jpg

and the second is

http://example.com/my_image/image-1-0.jpg

then you can guess what the general format will be, and give dezoomify-rs the following:

http://example.com/my_image/image-{{X}}-{{Y}}.jpg

If the numbers have leading zeroes in the URL (such as image-01-00.jpg instead of image-1-0.jpg), then you can specify them in the url template as follows:

http://example.com/my_image/image-{{X:02}}-{{Y:02}}.jpg

Custom yaml

The custom yaml dezoomer is a powerful tool that lets you download tiled images in many different formats, including formats that are not explicitly supported by dezoomify-rs. In order to use this dezoomer, you'll need to create a tiles.yaml file, which is a little bit technical. However, we have a a tutorial for the custom YAML dezoomer to help you. If you are having troubles understanding the tutorial or adapting it to your use-case, you should get in touch by opening a new github issue.

Command-line options

When using dezoomify-rs from the command-line

Allows downloading zoomable images. Supports several different formats such as zoomify, iiif, and deep zoom images.

Usage: dezoomify-rs [OPTIONS] [INPUT_URI] [OUTFILE]

Arguments:
  [INPUT_URI]  Input URL or local file name. By default, the program will ask for it interactively
  [OUTFILE]    File to which the resulting image should be saved. By default the program will generate a name based on the image metadata if available. Otherwise, it will generate a name in the format "dezoomified[_N].{jpg,png}" depending on which files already exist in the current directory, and whether the target image size fits in a JPEG or not

Options:
  -?, --help
          Displays this help message
  -d, --dezoomer <DEZOOMER>
          Name of the dezoomer to use [default: auto]
  -l, --largest
          If several zoom levels are available, then select the largest one
  -w, --max-width <MAX_WIDTH>
          If several zoom levels are available, then select the one with the largest width that is inferior to max-width
  -h, --max-height <MAX_HEIGHT>
          If several zoom levels are available, then select the one with the largest height that is inferior to max-height
  -n, --parallelism <PARALLELISM>
          Degree of parallelism to use. At most this number of tiles will be downloaded at the same time [default: 16]
  -r, --retries <RETRIES>
          Number of new attempts to make when a tile load fails before giving up. Setting this to 0 is useful to speed up the generic dezoomer, which relies on failed tile loads to detect the dimensions of the image. On the contrary, if a server is not reliable, set this value to a higher number [default: 1]
      --retry-delay <RETRY_DELAY>
          Amount of time to wait before retrying a request that failed. Applies only to the first retry. Subsequent retries follow an exponential backoff strategy: each one is twice as long as the previous one [default: 2s]
      --compression <COMPRESSION>
          A number between 0 and 100 expressing how much to compress the output image. For lossy output formats such as jpeg, this affects the quality of the resulting image. 0 means less compression, 100 means more compression. Currently affects only the JPEG and PNG encoders [default: 20]
  -H, --header <HEADERS>
          Sets an HTTP header to use on requests. This option can be repeated in order to set multiple headers. You can use `-H "Referer: URL"` where URL is the URL of the website's viewer page in order to let the site think you come from the legitimate viewer
      --max-idle-per-host <MAX_IDLE_PER_HOST>
          Maximum number of idle connections per host allowed at the same time [default: 32]
      --accept-invalid-certs
          Whether to accept connecting to insecure HTTPS servers
  -i, --min-interval <MIN_INTERVAL>
          Minimum amount of time to wait between two consequent requests. This throttles the flow of image tile requests coming from your computer, reducing the risk of crashing the remote server of getting banned for making too many requests in a short succession [default: 50ms]
      --timeout <TIMEOUT>
          Maximum time between the beginning of a request and the end of a response before the request should be interrupted and considered failed [default: 30s]
      --connect-timeout <CONNECT_TIMEOUT>
          Time after which we should give up when trying to connect to a server [default: 6s]
      --logging <LOGGING>
          Level of logging verbosity. Set it to "debug" to get all logging messages [default: warn]
  -c, --tile-cache <TILE_STORAGE_FOLDER>
          A place to store the image tiles when after they are downloaded and decrypted. By default, tiles are not stored to disk (which is faster), but using a tile cache allows retrying partially failed downloads, or stitching the tiles with an external program
  -V, --version
          Print version

Documentation

  • For documentation specific to this tool, see the dezoomify-rs wiki. Do not hesitate to contribute to it by creating new pages or modifying existing ones.
  • For general purpose documentation about zoomable images, the dezoomify wiki may be useful.

Batch mode

dezoomify-rs does not yet have the ability to download multiple images at once itself. However, since it is a commandline application. You can use it within a for loop in a batch script in Windows or a bash script in Linux, MacOS (or windows with wsl).

For instance, in bash, you could create a file called urls.txt containing all the urls you want to dezoomify, and then use xargs together with dezoomify-rs :

xargs -d '\n' -n 1 ./dezoomify-rs < ./urls.txt

dezoomify-rs's People

Contributors

jsbien avatar kostas avatar linden6 avatar lovasoa avatar skyme5 avatar vladh avatar winkidney avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dezoomify-rs's Issues

Downloading fails for some tiles

While for the vast majority of images in zoomify downloader works flawlessly, I have encountered many images at the following URL where download was not possible: https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/ImageProperties.xml. It just hangs infinitely with cmdline switch -r 10. When reduced to -r 1, it revealed some image groups being unavailable. This error very often happens at tiles 12/117 and 54/117 but that may be just a coincidence.

(-r 10)

[ETA:1s] ###################---------------------   54/117  Downloaded tile at x=256 y=1280

(-r 1)

[ETA:2s] ######################------------------   62/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-1-8.jpg: network error: HTTP status client error
[ETA:2s] ######################------------------   63/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-5-6.jpg: network error: HTTP status client error
[ETA:2s] ######################------------------   64/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-4-7.jpg: network error: HTTP status client error
[ETA:2s] #######################-----------------   65/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-7-6.jpg: network error: HTTP status client error
[ETA:3s] #######################-----------------   66/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-6-7.jpg: network error: HTTP status client error
[ETA:3s] ########################----------------   68/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-1-7.jpg: network error: HTTP status client error
[ETA:3s] ########################----------------   69/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-0-8.jpg: network error: HTTP status client error
[ETA:3s] ########################----------------   70/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-3-7.jpg: network error: HTTP status client error
[ETA:3s] #########################---------------   71/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-2-8.jpg: network error: HTTP status client error
[ETA:3s] #########################---------------   73/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-6-6.jpg: network error: HTTP status client error
[ETA:3s] ##########################--------------   75/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-7-7.jpg: network error: HTTP status client error
[ETA:3s] ##########################--------------   76/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-0-7.jpg: network error: HTTP status client error
[ETA:3s] ###########################-------------   77/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-3-8.jpg: network error: HTTP status client error
[ETA:3s] ###########################-------------   78/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-5-8.jpg: network error: HTTP status client error
[ETA:3s] ############################------------   79/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-0-9.jpg: network error: HTTP status client error
[ETA:3s] ############################------------   81/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-2-9.jpg: network error: HTTP status client error
[ETA:3s] #############################-----------   82/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-4-8.jpg: network error: HTTP status client error
[ETA:3s] #############################-----------   84/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-6-8.jpg: network error: HTTP status client error
[ETA:3s] ##############################----------   85/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-1-9.jpg: network error: HTTP status client error
[ETA:3s] ##############################----------   86/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-6-9.jpg: network error: HTTP status client error
[ETA:3s] ###############################---------   88/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-3-9.jpg: network error: HTTP status client error
[ETA:3s] ###############################---------   90/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-1-10.jpg: network error: HTTP status client error
[ETA:3s] ################################--------   91/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-0-10.jpg: network error: HTTP status client error
[ETA:3s] ################################--------   92/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-5-9.jpg: network error: HTTP status client error
[ETA:2s] #################################-------   94/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-7-9.jpg: network error: HTTP status client error
[ETA:2s] ##################################------   97/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-2-10.jpg: network error: HTTP status client error
[ETA:2s] ##################################------   98/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-0-11.jpg: network error: HTTP status client error
[ETA:2s] ##################################------   99/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-7-10.jpg: network error: HTTP status client error
[ETA:2s] ###################################-----  100/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-4-10.jpg: network error: HTTP status client error
[ETA:2s] ###################################-----  101/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-2-11.jpg: network error: HTTP status client error
[ETA:2s] ###################################-----  102/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-7-11.jpg: network error: HTTP status client error
[ETA:2s] ####################################----  103/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-6-10.jpg: network error: HTTP status client error
[ETA:2s] ####################################----  104/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-4-11.jpg: network error: HTTP status client error
[ETA:2s] ####################################----  105/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-1-11.jpg: network error: HTTP status client error
[ETA:1s] #####################################---  106/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-6-11.jpg: network error: HTTP status client error
[ETA:1s] #####################################---  107/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-3-11.jpg: network error: HTTP status client error
[ETA:1s] #####################################---  108/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-5-11.jpg: network error: HTTP status client error
[ETA:1s] ######################################--  109/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-8-11.jpg: network error: HTTP status client error
[ETA:1s] ######################################--  111/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-1-12.jpg: network error: HTTP status client error
[ETA:1s] #######################################-  112/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-3-12.jpg: network error: HTTP status client error
[ETA:1s] #######################################-  113/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-6-12.jpg: network error: HTTP status client error
[ETA:0s] ########################################  115/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-2-12.jpg: network error: HTTP status client error
[ETA:0s] ########################################  116/117  error with tile https://kramerius-vs.nkp.cz/search/zoomify/uuid:7894c8a0-42e8-11e4-af1d-001018b5eb5c/TileGroup0/3-5-12.jpg: network error: HTTP status client error
[ETA:0s] ########################################  117/117  Successfully downloaded 59 tiles out of 117

However, when the same image was URL is entered and downloaded through dezoomify webpage at https://ophir.alwaysdata.net/dezoomify/dezoomify.html, download works and the tiles were reassembled correctly.

What might be causing failure to download through dezoomify-rs when web version of the downloader works?

Error when joining tiles on local machine

I'm trying to stitch a DZI locally, and getting this error:
54/6241 error with tile dzm/471abb0f-bbd4-48ce-a94b-d14acd5c1a2f_files/15/48_0.jpg: network error: builder error: relative URL without a base

This is the command i'm using: ./dezoomify-rs "dzm/471abb0f-bbd4-48ce-a94b-d14acd5c1a2f.dzi" /result.jpg

Not sure I'm doing this right?

Memory allocation failed on Windows

The beta works fine on Win10x64.
Is there a way to get around memory allocation issue?
I'm trying to download level 8 zoom which has 20,160 tiles. I have 24GB RAM, of which 8GB is dedicated to RAMDisk. I have enable virtual memory features in Win10.
Thank you.
Capture

NOTE: originally posted by @MrChrisWin on #15.

IIIF: unable to download images on servers that do not support the "default" quality

Hello,
Could you help me to write the correct command for downloading from Yale Collection?

The IIIF viewer: https://collections.britishart.yale.edu/zoom/index.html?image=fd470c3e-ead0-4878-ac97-d63295753f82
The json path: https://images.britishart.yale.edu/iiif/fd470c3e-ead0-4878-ac97-d63295753f82/info.json

I tried the normal code, but it returns 400 Bad Request error:
dezoomify-rs "https://images.britishart.yale.edu/iiif/fd470c3e-ead0-4878-ac97-d63295753f82/info.json"

I then tried to put in the header of the viewer page but it still returns same error:
dezoomify-rs -H "https://collections.britishart.yale.edu/zoom/index.html?image=fd470c3e-ead0-4878-ac97-d63295753f82" "https://images.britishart.yale.edu/iiif/fd470c3e-ead0-4878-ac97-d63295753f82/info.json"

The online dezoomify works fine with the json path, but I would like dezoomify-rs better for batch processing.

Thank you

dezoomify-rs crashes when it goes out of available memory

Forgive me @lovasoa, but I've a problem. I want to dezoomify the cadastral map of Capergnanica.
Following your instructions, I got the tiles.yaml file; I put it in the same folder as the .exe file; I started the .exe and it appeared on a black background: "Enter a URL or a path to a tiles.yaml file: ..."; I pasted the tiles.yaml file and started. On the verge of finishing and creating the .jpg file, dezoomify-rs unexpectedly stopped with THIS SCREEN.

Errore

What does it mean, please?
Point out that:

  • I've Windows 7;
  • I've a free space of 54 GB;
  • dezoomify-rs worked great with other huge maps of the Milan Archive.

Thank you in advance.

PFF file support

Hi,

I'm not sure if this large image can be downloaded by using dezoomify-rs:
http://digital2.library.ucla.edu/viewItem.do?ark=21198/zz0019pd69

This seems to be the image's tile info like width, height, number of tiles and tile size:
http://digital2.library.ucla.edu/zoomify/servlet/zoomifyservlet.ZoomifyServlet?file=\\ad\Dlib\dlcontent-prod\yuhan\zoomify\21198-zz0019pd69_736971_master.pff&requestType=1

One of the image files:
http://digital2.library.ucla.edu/zoomify/servlet/zoomifyservlet.ZoomifyServlet?file=\\ad\Dlib\dlcontent-prod\yuhan\zoomify\21198-zz0019pd69_736971_master.pff&requestType=0&begin=45112577&end=45132342&vers=106&head=15331

But I do not know how to create the proper URL rule in the .yaml template. Can someone help?

Thank you very much!

suggestions

Hello @lovasoa. I have a few minor suggestions for improving dezoomify:

  • 1. I often batch download images with the same name and have to manually rename them before downloading. It would be easier if dezoomify was programmed to automatically rename images to avoid overwriting existing ones: E.g. if "dezoomify.jpg" already exists, then "dezoomify (1).jpg" (I don't actually use these names, just to demonstrate).
  • 2. Make is easier to identify "image not saved" fatal errors in the output, so that users can find them and try again. (This is a problem for me when downloading 50+ images, and inspecting the output for errors). If possible, I would color code the errors RED, or add some salient text to make the errors stand out like: !!!!!!!!!!!!!!! ERROR !!!!!!!!!!!!!!
  • 3. When users launch dezoomify.exe (not CMD) and provide a bad URL, the program immediately exits. It would be better if dezoomify stayed open so that the user can read the error, check the URL that was typed, and try again.

The new dezoomify works great, by the way :)

Input/Output Error: Wrong data size

Using Dev version https://github.com/lovasoa/dezoomify-rs/releases/tag/build-25e9c8d18aa0196c59d5e2050bd6fb3443b9fcd5 processed 100+ images with no problem.

For six or so images get the following error

image

on the following URL's

dezoomify-rs -l  http://www.cartomundi.fr/site/cmfiles/Cartes/SP8/d_fc1020.jpg/dzc_output.xml Egypt_d_fc1020.png

dezoomify-rs -l  http://www.cartomundi.fr/site/cmfiles/Cartes/SP8/d_fc1021.jpg/dzc_output.xml Egypt_d_fc1021.png

dezoomify-rs -l  http://www.cartomundi.fr/site/cmfiles/Cartes/SP8/d_fc1053.jpg/dzc_output.xml Egypt_d_fc1053.png

dezoomify-rs -l  http://www.cartomundi.fr/site/cmfiles/Cartes/SP8/d_fc1054.jpg/dzc_output.xml Egypt_d_fc1054.png

dezoomify-rs -l  http://www.cartomundi.fr/site/cmfiles/Cartes/SP8/d_fc1055.jpg/dzc_output.xml Egypt_d_fc1055.png

I get a corrupted PNG file. It works OK in Dezoomify so I can process manually but am interested in what causes the above error

Scrape tiles, without reassembly

Hi @lovasoa,
It would be great to be able to simply extract the tiles images and meta-information files, without creating a JPEG or TIFF etc out of it? Thoughts? I'd give it a stab but I don't know Rust.

K. Watson

Um am I doing something wrong?

Hi there, when I'm using dezoomify-rs and I've pasted a link to google arts etc, it will give me the option to download a size as normal, and will proceed to download etc.

However, once downloaded it suddenly closes. Am I missing something? As there seems to be no indication what directory the image file is saved in? Should it appear in the root directory that dezoomify-rs is in?

Failing compilation

Hi and thanks for a wonderful project!

As I am calling dezoomify-rs from a Ruby program and wanted to implement a special program return value if some tiles haven't been downloaded successfully (currently returns 0), I wanted to try and compile the program myself. However, the compilation fails for cargo check with the following errors:

error[E0277]: the trait bound `(): std::convert::From<&str>` is not satisfied
   --> src/main.rs:253:33
    |
253 |         "Downloaded all tiles.".into()
    |                                 ^^^^ the trait `std::convert::From<&str>` is not implemented for `()`
    |
    = note: required because of the requirements on the impl of `std::convert::Into<()>` for `&str`

error[E0308]: mismatched types
   --> src/main.rs:263:34
    |
263 |     progress.finish_with_message(&final_msg);
    |                                  ^^^^^^^^^^ expected `str`, found `()`
    |
    = note: expected reference `&str`
               found reference `&()`

error: aborting due to 2 previous errors

Some errors have detailed explanations: E0277, E0308.
For more information about an error, try `rustc --explain E0277`.
error: could not compile `dezoomify-rs`.

My environment:

rustc --version
rustc 1.42.0 (b8cedc004 2020-03-09)

Thank you kindly for pointing me in the right direction.

## The book of Kells: full high-quality download

The book of Kells: full high-quality download

extracted from the Trinity College Dublin website

These links will expire 30 days after they are last downloaded.

The Book of Kells contains the four Gospels in Latin based on the Vulgate text which St Jerome completed in 384AD, intermixed with readings from the earlier Old Latin translation. The Gospel texts are prefaced by other texts, including "canon tables", or concordances of Gospel passages common to two or more of the evangelists; summaries of the gospel narratives (Breves causae); and prefaces characterizing the evangelists (Argumenta). The book is written on vellum (prepared calfskin) in a bold and expert version of the script known as "insular majuscule". It contains 340 folios, now measuring approximately 330 x 255 mm; they were severely trimmed, and their edges gilded, in the course of rebinding in the 19th century.

Originally posted by @lovasoa in #17 (comment)

Precompiled linux binaries are ARM binaries

$ file ./dezoomify-rs 
./dezoomify-rs: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-, for GNU/Linux 3.7.0, BuildID[sha1]=1ca97108c38f621046310b478aeef9e2d7d5a479, with debug_info, not stripped

Provided linux binaries are compiled for aarch64 (ARM) instead of x86-64.

Batch mode

It would be really useful to be able to provide a text file as an argument to download all the images contained within.

ČÚZK Portal

I can't create the info.json or .yaml files for the zoomable cadastral maps on the ČÚZK Portal. I provide two examples with different dimensions:
the huge preparatory map of Katastralgemeinde Landschau (activate Flash Player to see);
one of the definitive maps of Katastralgemeinde Schwanenberg (for this type of maps, perhaps ČÚZK could be added to the dezoomify-extension features, don't?).

In this regard, @lovasoa, I offer You my most sincere congratulations for Your genial extension🤗 ... and also my best wishes for Your health, given the bad times we live in😰. Take care, please.

Thanks and question

Thank you very much for your prototype!
I've tried on Ubuntu, but I can't open the file (is not executable).
So I'm trying on Windows 10, but I get a message like this (I tried with a brand new tiles.yaml and with your template)

"Invalid YAML configuration file: missing field headers at line 2 column 13"

Thank you!

feature request: z-x-y coordinate urls

In case this isn't already an option, are there any plans to support urls with the z-x-y coordinates, as is currently possible with the web version of Dezoomify?

For example, this works for the web version but not rs: http://0.tiles.dx.artsmia.org/1743/7/{{X}}/{{Y}}.jpg
BTW, the .json url does not work for either, so I had to use the z-x-y url: https://tiles.dx.artsmia.org/1743.json

If this is going to be implemented at some point, I hope you can do an automatic fallback for the z value (zoom level), e.g., if 7 is NA, then try 6, then 5, etc. The custom .yaml option is nice, but if a url can be provided, that makes it much less cumbersome, especially for multiple images.

It would be super nice to be able to do everything from the command line with dezoomify-rs, as opposed to the browser. I hope we are gradually moving in that direction :)

Update: I used this example because the download button on the site gave the 800px version, but a quick edit of the download url from "800" to "full" gives the full size (https://0.api.artsmia.org/full/1743.jpg). Regardless of this easy fix, it would be nice to have the feature I mentioned for other cases with no easy fixes like this.

NLA

I have a problem downloading the map image on the NLA website, could you kindly help check?

Here is the link: https://nla.gov.au/nla.obj-2646882352/dzi?tile=

dezoomify-rs can list the tiles, but when tried to download, it shrew out WARN messages like:

C:\Users\User>C:\dezoomify-rs\dezoomify-rs.exe
Enter an URL or a path to a tiles.yaml file:
https://nla.gov.au/nla.obj-2646882352/dzi?tile=
Found the following zoom levels:

  1. Deep Zoom Image (20424 x 31978 pixels, 10000 tiles)
  2. Deep Zoom Image (10212 x 15989 pixels, 2520 tiles)
  3. Deep Zoom Image ( 5106 x 7995 pixels, 640 tiles)
  4. Deep Zoom Image ( 2553 x 3998 pixels, 160 tiles)
  5. Deep Zoom Image ( 1277 x 1999 pixels, 40 tiles)
  6. Deep Zoom Image ( 639 x 1000 pixels, 12 tiles)
  7. Deep Zoom Image ( 320 x 500 pixels, 4 tiles)
  8. Deep Zoom Image ( 160 x 250 pixels, 1 tiles)
  9. Deep Zoom Image ( 80 x 125 pixels, 1 tiles)
  10. Deep Zoom Image ( 40 x 63 pixels, 1 tiles)
  11. Deep Zoom Image ( 20 x 32 pixels, 1 tiles)
  12. Deep Zoom Image ( 10 x 16 pixels, 1 tiles)
  13. Deep Zoom Image ( 5 x 8 pixels, 1 tiles)
  14. Deep Zoom Image ( 3 x 4 pixels, 1 tiles)
  15. Deep Zoom Image ( 2 x 2 pixels, 1 tiles)
  16. Deep Zoom Image ( 1 x 1 pixels, 1 tiles)
    Which level do you want to download?
    1
    [ETA:0s] ######################################## 0/0 Computing the URLs of the image tiles...
    [2020-05-06T23:59:09Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/13_0.jpg'. Retrying in 2.56s
    [2020-05-06T23:59:09Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/7_0.jpg'. Retrying in 3.84s
    [2020-05-06T23:59:09Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/9_0.jpg'. Retrying in 2.08s
    [2020-05-06T23:59:09Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/12_0.jpg'. Retrying in 3.44s
    [2020-05-06T23:59:09Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/1_0.jpg'. Retrying in 3.12s
    [2020-05-06T23:59:09Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/14_0.jpg'. Retrying in 3.68s
    [2020-05-06T23:59:09Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/10_0.jpg'. Retrying in 3.2s
    [2020-05-06T23:59:09Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/15_0.jpg'. Retrying in 2.8s
    [2020-05-06T23:59:09Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/5_0.jpg'. Retrying in 3.6s
    [2020-05-06T23:59:09Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/3_0.jpg'. Retrying in 3.36s
    [2020-05-06T23:59:09Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/0_0.jpg'. Retrying in 2s
    [2020-05-06T23:59:09Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/4_0.jpg'. Retrying in 2.48s
    [2020-05-06T23:59:09Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/8_0.jpg'. Retrying in 2.96s
    [2020-05-06T23:59:09Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/6_0.jpg'. Retrying in 2.72s
    [2020-05-06T23:59:09Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/11_0.jpg'. Retrying in 2.32s
    [ETA:1h] #--------------------------------------- 3/2520 error with tile https://nla.gov.au/nla_files/14/9_0.jpg: net[ETA:1h] #--------------------------------------- 4/2520 error with tile https://nla.gov.au/nla_files/14/2_0.jpg: net[ETA:1h] #--------------------------------------- 5/2520 error with tile https://nla.gov.au/nla_files/14/11_0.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/11_0.jpg)
    [2020-05-06T23:59:11Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/16_0.jpg'. Retrying in 3.92s
    [ETA:53m] #--------------------------------------- 7/2520 error with tile https://nla.gov.au/nla_files/14/13_0.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/13_0.jpg)
    [2020-05-06T23:59:12Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/18_0.jpg'. Retrying in 2.16s
    [ETA:46m] #--------------------------------------- 9/2520 error with tile https://nla.gov.au/nla_files/14/15_0.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/15_0.jpg)
    [2020-05-06T23:59:12Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/20_0.jpg'. Retrying in 2.4s
    [ETA:43m] #--------------------------------------- 10/2520 error with tile https://nla.gov.au/nla_files/14/8_0.jpg: ne[ETA:31m] #--------------------------------------- 11/2520 error with tile https://nla.gov.au/nla_files/14/1_0.jpg: ne[ETA:31m] #--------------------------------------- 11/2520 error with tile https://nla.gov.au/nla_files/14/10_0.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/10_0.jpg)
    [2020-05-07T00:06:10Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/22_0.jpg'. Retrying in 2.64s
    [2020-05-07T00:06:10Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/23_0.jpg'. Retrying in 3.76s
    [2020-05-07T00:06:11Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/25_0.jpg'. Retrying in 2s
    [2020-05-07T00:06:11Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/24_0.jpg'. Retrying in 2.88s
    [2020-05-07T00:06:11Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/36_0.jpg'. Retrying in 2.32s
    [2020-05-07T00:06:11Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/37_0.jpg'. Retrying in 3.44s
    [2020-05-07T00:06:11Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/29_0.jpg'. Retrying in 2.48s
    [2020-05-07T00:06:11Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/32_0.jpg'. Retrying in 3.84s
    [2020-05-07T00:06:11Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/30_0.jpg'. Retrying in 3.6s
    [2020-05-07T00:06:11Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/26_0.jpg'. Retrying in 3.12s
    [2020-05-07T00:06:11Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/28_0.jpg'. Retrying in 3.36s
    [2020-05-07T00:06:11Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/33_0.jpg'. Retrying in 2.96s
    [2020-05-07T00:06:11Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/31_0.jpg'. Retrying in 2.72s
    [2020-05-07T00:06:11Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/27_0.jpg'. Retrying in 2.24s
    [2020-05-07T00:06:11Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/35_0.jpg'. Retrying in 3.2s
    [ETA:16h] #--------------------------------------- 23/2520 error with tile https://nla.gov.au/nla_files/14/21_0.jpg: n[ETA:15h] #--------------------------------------- 24/2520 error with tile https://nla.gov.au/nla_files/14/22_0.jpg: network error: error sending request for url (https://nla.gov.au/nla_files/14/22_0.jpg): operation timed out
    [2020-05-07T00:06:13Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/38_0.jpg'. Retrying in 2.56s
    [ETA:14h] #--------------------------------------- 25/2520 error with tile https://nla.gov.au/nla_files/14/25_0.jpg: n[ETA:13h] #--------------------------------------- 27/2520 error with tile https://nla.gov.au/nla_files/14/36_0.jpg: n[ETA:12h] #--------------------------------------- 28/2520 error with tile https://nla.gov.au/nla_files/14/34_0.jpg: n[ETA:11h] #--------------------------------------- 30/2520 error with tile https://nla.gov.au/nla_files/14/27_0.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/27_0.jpg)
    [ETA:11h] #--------------------------------------- 31/2520 error with tile https://nla.gov.au/nla_files/14/24_0.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/24_0.jpg)
    [ETA:10h] #--------------------------------------- 32/2520 error with tile https://nla.gov.au/nla_files/14/31_0.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/31_0.jpg)
    [2020-05-07T00:06:14Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/3_1.jpg'. Retrying in 2.48s
    [2020-05-07T00:06:14Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/4_1.jpg'. Retrying in 3.6s
    [ETA:10h] #--------------------------------------- 33/2520 error with tile https://nla.gov.au/nla_files/14/33_0.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/33_0.jpg)
    [ETA:10h] #--------------------------------------- 34/2520 error with tile https://nla.gov.au/nla_files/14/26_0.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/26_0.jpg)
    [ETA:9h] #--------------------------------------- 36/2520 error with tile https://nla.gov.au/nla_files/14/28_0.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/28_0.jpg)
    [ETA:9h] #--------------------------------------- 37/2520 error with tile https://nla.gov.au/nla_files/14/35_0.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/35_0.jpg)
    [ETA:8h] #--------------------------------------- 38/2520 error with tile https://nla.gov.au/nla_files/14/30_0.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/30_0.jpg)
    [ETA:8h] #--------------------------------------- 39/2520 error with tile https://nla.gov.au/nla_files/14/32_0.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/32_0.jpg)
    [2020-05-07T00:06:15Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/12_1.jpg'. Retrying in 2.56s
    [2020-05-07T00:06:15Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/11_1.jpg'. Retrying in 3.44s
    [2020-05-07T00:06:15Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/10_1.jpg'. Retrying in 2.32s
    [2020-05-07T00:06:16Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/13_1.jpg'. Retrying in 3.68s
    [ETA:8h] #--------------------------------------- 40/2520 error with tile https://nla.gov.au/nla_files/14/38_0.jpg: ne[ETA:8h] #--------------------------------------- 41/2520 error with tile https://nla.gov.au/nla_files/14/1_1.jpg: net[ETA:7h] #--------------------------------------- 42/2520 error with tile https://nla.gov.au/nla_files/14/3_1.jpg: net[ETA:7h] #--------------------------------------- 44/2520 error with tile https://nla.gov.au/nla_files/14/8_1.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/8_1.jpg)
    [ETA:7h] #--------------------------------------- 45/2520 error with tile https://nla.gov.au/nla_files/14/39_0.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/39_0.jpg)
    [ETA:7h] #--------------------------------------- 46/2520 error with tile https://nla.gov.au/nla_files/14/0_1.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/0_1.jpg)
    [2020-05-07T00:06:18Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/17_1.jpg'. Retrying in 2.16s
    [ETA:6h] #--------------------------------------- 47/2520 error with tile https://nla.gov.au/nla_files/14/2_1.jpg: net[ETA:6h] #--------------------------------------- 48/2520 error with tile https://nla.gov.au/nla_files/14/7_1.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/7_1.jpg)
    [ETA:6h] #--------------------------------------- 50/2520 error with tile https://nla.gov.au/nla_files/14/4_1.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/4_1.jpg)
    [2020-05-07T00:06:18Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/21_1.jpg'. Retrying in 2.64s
    [2020-05-07T00:06:18Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/22_1.jpg'. Retrying in 3.76s
    [2020-05-07T00:06:18Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/18_1.jpg'. Retrying in 3.28s
    [2020-05-07T00:06:18Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/23_1.jpg'. Retrying in 2.88s
    [ETA:6h] #--------------------------------------- 51/2520 error with tile https://nla.gov.au/nla_files/14/12_1.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/12_1.jpg)
    [ETA:6h] #--------------------------------------- 53/2520 error with tile https://nla.gov.au/nla_files/14/6_1.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/6_1.jpg)
    [2020-05-07T00:06:19Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/26_1.jpg'. Retrying in 2.24s
    [2020-05-07T00:06:19Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/27_1.jpg'. Retrying in 3.36s
    [ETA:5h] #--------------------------------------- 55/2520 error with tile https://nla.gov.au/nla_files/14/11_1.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/11_1.jpg)
    [ETA:5h] #--------------------------------------- 56/2520 error with tile https://nla.gov.au/nla_files/14/13_1.jpg: ne[ETA:5h] #--------------------------------------- 57/2520 error with tile https://nla.gov.au/nla_files/14/17_1.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/17_1.jpg)
    [ETA:5h] #--------------------------------------- 58/2520 error with tile https://nla.gov.au/nla_files/14/19_1.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/19_1.jpg)
    [ETA:5h] #--------------------------------------- 59/2520 error with tile https://nla.gov.au/nla_files/14/16_1.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/16_1.jpg)
    [ETA:5h] #--------------------------------------- 60/2520 error with tile https://nla.gov.au/nla_files/14/24_1.jpg: network error: HTTP status client error (404 Not Found) for url (https://nla.gov.au/nla_files/14/24_1.jpg)
    [2020-05-07T00:06:21Z WARN dezoomify_rs] Failed to load 'https://nla.gov.au/nla_files/14/33_1.jpg'. Retrying in 2.08s

Possibility of downloading only a subset of the image

Hello,
When we have huge gigapixel images, for example:
http://hyper-resolution.org/view.html?pointer=0.416,0.226&i=Rijksmuseum/SK-C-5/SK-C-5_VIS_20-um_2019-12-21
It would be very interesting to have a functionality to download quadrants at maximum zoom and, later, to compose the quadrants by hand with Photoshop, for example.

It would be something like:

"http://hyper-resolution.org/dzi/Rijksmuseum/SK-C-5/SK-C-5_VIS_20-um_2019-12-21_files/17/{{X from 100 to 200}}_{{Y from 100 to 200}}.jpeg"

I don't mean pixel level in a yaml file; I mean at the block level.

Sorry for my horrible English.
Thanks for everything and greetings,

Test whether the image size fits the chosen file format before starting to download tiles

I'm trying to download the newly uploaded Nightwatch painting gigapixel image at level 1, which is about 5.6 gigapixels. (Level 0 is too large at 44.8 gigapixels).
Level 1 is able to allocate enough RAM (about 49GB) and it downloaded the image tiles fully over the course of about 15 minutes.
However, upon completion of the download it threw this error:

image

I've got plenty of disk space and a total RAM size of 64GB (not including pagefile). Is this image just too large or does it just need more RAM?

some characters in the title cause an error on Windows

when try to download from artsandculture.google.com if there are some characters in the title like ", ', ? it gives error.

Example Urls:
for: ", for: ' for: ?

Screenshot:
for example: The Rocky Mountains, Lander's Peak
ApplicationFrameHost_xbejd3gEkx
Lander's, ' character turns into utf16 \u0027. and so apparently these escapes don't work: \' and \" (also i try unicode escapes, \u{0027} and \x27 it didnt work either) actually it works but as i understand the title is already converted to utf16 before coming to name.replace function. i want to fix that but rust seems complicated to me :)

my temporary solution adding \\. (Lander\u0027s -> Landeru0027s)

-format!("{}.jpg", name.replace(&['(', ')', ',', '\"', '.', ';', ':', '\''][..], ""))
+format!("{}.jpg", name.replace(&['?', '\\', '(', ')', ',', '\"', '.', ';', ':', '\''][..], ""))

System:
Windows 10 64bit (1909)(TR)

DEZOOMIFY/HTML Help Needed: How can I download the full resolution photo from artsy?

I'm trying to download an image from artsy website for a personal project that I'm working on and they have their high resolution zoom images protected from downloading. I've opened up the view source and tried to find the image source in the HTML but found that they have hidden it pretty well. Can someone help me to see how I can locate the hidden zoom file (high res) that I can download? I tried dezoomify and that doesn't seem to work for me either.

https://www.artsy.net/artwork/jonathan-lasker-scenic-reality

Please, help me with maps.geshergalicia.org

Forgive me, @lovasoa: I know you have a lot of things to do but I would like to try your prototype for very large images I must download. Nevertheless, I don't know anything about rust 😥.
How can I do, please?
Example: https://maps.geshergalicia.org/cadastral/baranow-1850/. I've tried Generic Dezoomer (url: http://ophir.alwaysdata.net/dezoomify/dezoomify.html#https://maps.geshergalicia.org/cadastral/baranow-1850/7/{{Y}}/{{X}}.jpg) but it's too large (32000 x 24064 pixels) and, even by choosing a smaller scale (but I'm not interested in), the tiles loaded are mismatched 😰. I'm really confused ...
Kind regards.

IIIF image issue

Hey,

Trying to work with images that follow the IIIF protocol:
https://stor.artstor.org/iiif/fpx/carnegie/d0516/05166006.fpx/info.json
https://stor.artstor.org/iiif/fpx/carnegie/d0463/04636006.fpx/info.json

But both web and rs versions of dezoomify fail to grab all the tiles. Dezoomify-rs gives "Client Error: 401 unauthorized" when it fails on each tile. Most likely because it requires some authentication.

However, I am able to get the full-size image by simply modifying the width value in the URL of the default.jpg file from XHR:
https://stor.artstor.org/iiif/fpx/carnegie/d0516/05166006.fpx/full/3588,/0/default.jpg
I wonder though if there is some other way of modding the URL without having to check the json file for the width, as this is cumbersome. Is it absolutely necessary to provide the actual width?

As a side note, what kind of resource would I look into if I want to learn more about how to interact with URLs to get what I want? Is this all API? I don't have a computer science background, so this is a little over my head.

National Gallery - Bad request

Hi,

The image adress is: https://www.nga.gov/collection/art-object-page.41622.html

I could not download the following file by using the dezoomify-rs. It works when I use the https://ophir.alwaysdata.net/dezoomify site.

However it gives "ERROR network error: HTTP status client error (400 Bad Request) for url " when I try to use the command line dezoomify-rs. And I want to use the command line dezoomify-rs

I tried:
https://media.nga.gov/fastcgi/iipsrv.fcgi?FIF=/public/objects/4/1/6/2/2/41622-primary-0-nativeres.ptif&obj=IIP,1.0&obj=Max-size&obj=Tile-size&obj=Resolution-number

and

https://media.nga.gov/fastcgi/iipsrv.fcgi?FIF=/public/objects/4/1/6/2/2/41622-primary-0-nativeres.ptif

I could not locate the .json file

Could you please help?

Preserve the image DPI information from individual tiles in the final output

All dezoomified maps (small and/or large) are at 96 dpi, although some are reported as 300 dpi. I did a test with this small-sized map from BNF Gallica, dezoomifying it first directly (obtaining an image at 300 dpi), then with dezoomify (obtaining an image at 96 dpi)😯. Same for other maps, not only from BNF.
This is even more true of dezoomify-rs: the large cadastral maps of Venice and Milan State Archives were uploaded at 300 dpi (archival authority confirms this fact), but are dezoomified at 96 dpi.
Why?
Are the two softwares calibrated exclusively at 96 dpi?
If so, is there a way to get the image at 300 dpi🤔?

Warning: I underline that the images to which I refer are really very large, so Photopea and Photoshop Portable freeze if I try to (re)convert them to 300 dpi.

add support for IIPImage

Hello,
I'm so sorry to bother you again.
I have the following image:
https://www.nga.gov/collection/art-object-page.50724.html
This is the Ginevra de Benci by Leonardo da Vinci
In Google Arts it is published; but in a much lower definition than in the NGA
If I put the URL in dezoomify it starts creating the image; but being so big does not end.
So I wanted to do it with dezoomify-rs; but I am not able to find the configuration file.
I thought about creating a tiles.yaml but I don't know where to get it.
Sorry for the inconvenience.
Thank you so much. Regards,

Unable to parse DZI file with a Byte Order Mark

I am getting the following error using dezoomify-rs

ERROR Dezoomer error: Unable to create the dezoomer: Tried all of the dezoomers, none succeeded. They returned the following errors:

 - deepzoom: Unable to create the dezoomer: Unable to parse the dzi file: Syntax: 1:1 Unexpected characters outside the root element: 

Using the same URL I have no problem using Dezoomify on the web

http://www.cartomundi.fr/site/cmfiles/Cartes/SP8/d_Eg-124.jpg/dzc_output.xml

Any clues on what I am doing wrong?

Thanks
Mac

Fill in missing tiles with lower-res tiles

Sometimes there is something wrong upstream and one or more tiles are missing:

ERROR Only 125 tiles out of 126 could be downloaded. The resulting image was still created as dezoomified.jpg.

It would be really nice if dezoomify-rs could fill in the missing tile with an upscaled version of the next lower zoom, instead of the current black square.

Better error messages

Currently, error messages give a technical description of the error, which is not very helpful to end users. It should probably point to the documentation, and specify explicitly that dezoomify-rs expects the URL of a meta-information file, not a viewer page.

Several users have been confused by the existing error messages in the past.

boschproject.org : How to use dezoomify-rs together with the browser extension ?

Hi guys, total noob here but I must say the dezoomify chrome extension gave me so much pleasure to download some of my fav artworks grom arts&culture but then I bumped into http://boschproject.org/#/artworks/ which compiles works from another fav artist of mine and I'm kinda stuck. For instance I am trying to download this:
http://boschproject.org/view.html?pointer=0.786,0.021&i=00MCPVIS
with the browser extension but actually loads in days...and gives errors, and not the same final output...and don't know how to find the right parameters in order to feed it into the rs desktop version. So please don't mind my message and tell me how can I do this for the works over there. I made a github account just to say thanks for your work and ask for help with this lol.
Goodluck to you all and really nice work you have done!
Cheers

P.S. As I would want this to be as lossless as I can, please guide me on how to save in another format as well. Thanks

Support for artsy

I don't mean to hi-jack this thread but I need some help too. I'm inexperienced and frankly don't know what I'm doing. I don't even know how to properly use this website which is why I'm posting in here.

I'm trying to download an image from artsy website for a personal project that I'm working on and they have their high resolution zoom images protected from downloading. I've opened up the view source and tried to find the image source in the HTML but found that they have hidden it pretty well. Can someone help me to see how I can locate the hidden zoom file (high res) that I can download? I tried dezoomify and that doesn't seem to work for me either.

https://www.artsy.net/artwork/jonathan-lasker-scenic-reality

Originally posted by @SeanEatsWorld in #42 (comment)

Support for Quru/qis image server

bonhams.com uses quru/qis image server tech https://github.com/quru/qis.

The original page: https://www.bonhams.com/auctions/25444/lot/63/

Tile image has the form: https://images1.bonhams.com/image?src=Images%2Flive%2F2019-04%2F25%2F24868924-1-2.jpg&width=3352&height=4912&autosizefit=0&format=jpg&strip=1&stats=0&tile=36%3A64

I tried to feed this into dezoomify-rs but failed: https://images1.bonhams.com/image?src=Images%2Flive%2F2019-04%2F25%2F24868924-1-2.jpg&width=3352&height=4912&autosizefit=0&format=jpg&strip=1&stats=0&tile={{X}}%3A{{Y}}

Also tried: https://images1.bonhams.com/image?src=Images%2Flive%2F2019-04%2F25%2F24868924-1-2.jpg and it returns a lower resolution image (1966x2880); the full size image would be at 3352x4912.

Does anyone have a suggestion on what to do? Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.