#image-format #image #png #download #tile #url #downloader

bin+lib dezoomify-rs

允许下载可缩放的图像。支持多种不同的格式,如Zoomify、iiif和深度缩放图像。

11 个稳定版本

2.9.4 2022年11月15日
2.9.0 2022年7月16日
2.7.2 2021年8月2日
2.6.6 2021年6月9日
1.8.9 2020年4月17日

#65图像

每月45次 下载

自定义许可协议

8MB
6K SLoC

dezoomify-rs

Continuous Integration

dezoomify-rs 是一个拼图图像下载器。一些网页展示了高分辨率的可缩放图像,但没有提供下载的方式。这些图像通常是 拼图 的:原始的大图像已被分割成更小的单独图像文件,称为拼图。下载此类图像的唯一方法是分别下载所有拼图,然后再将它们拼接在一起。这个过程可以通过拼图图像下载器自动完成。

最常用的拼图图像下载器可能是 dezoomify,这是一个非常容易使用的在线工具。

这个项目的目标并不是取代传统的dezoomify。然而,有些图像非常大,无法在网页浏览器中有效地下载和显示。有时,网站试图通过拒绝访问某些 HTTP头 设置错误值来保护其拼图。dezoomify-rs 是一个适用于 Windows、MacOs 和 Linux 的桌面应用程序,它没有在线 zoomify 的限制。dezoomify-rs 还允许用户在 几种图像格式 中进行选择,而在 dezoomify 中,您只能将图像保存为 PNG

dezoomify-rs 支持多种可缩放图像格式,每种格式都由一个专门的 dezoomer 支持。以下是目前可用的 dezoomer:

  • Google Arts & Culture 支持从 artsandculture.google.com 下载图像;
  • zoomify 支持流行的可缩放图像格式 Zoomify
  • deepzoom 支持微软的 DZI 格式(深度缩放图像),通常与 seadragon 查看器一起使用。
  • IIIF 支持广泛使用的国际图像互操作性框架格式。
  • Zoomify PFF 支持旧的 zoomify 单文件图像格式。
  • Krpano 支持 krpano 全景查看器。
  • IIPImage 支持 iipimage 图像格式。
  • NYPLImage 支持 nypl 图像格式。
  • 通用 当瓦片 URL 按照简单的模式时。
  • 自定义 适用于高级用户。它允许您指定一个包含多个变量的自定义瓦片 URL 格式。这提供了最大的灵活性,但需要一些手动工作。

屏幕截图

dezoomify-rs screenshot

使用说明

下载 dezoomify-rs

首先,您必须下载应用程序。

  1. 访问最新版本页面
  2. 下载与您的操作系统(Windows、MacOS 或 Linux)匹配的版本,
  3. 从压缩文件中提取二进制文件。

在某些操作系统中,您可能需要在启动它之前授权应用程序执行。请参阅在 MacOS 中的操作

支持的输出图像格式

dezoomify-rs 支持多种输出图像格式。使用的格式由输出文件的名称确定。例如,在命令行中输入 dezoomify-rs http://example.com/ my_image.png 将创建一个 PNG 图像。

每种图像格式编码器都有一组独特的功能和限制。

  • PNG 图像是无损压缩的,这意味着输出图像质量略好于 JPEG,但文件大小要大得多。dezoomify-rs 中的 PNG 编码器可以创建非常大的图像;它不受您计算机上可用内存的限制。当图像非常大或其大小事先未知时,此格式默认选择。
  • JPEG 是最常用的图像格式。JPEG 图像的宽度和高度不能超过 65,535 像素。此格式默认用于适合此限制的图像。dezoomify-rs 中的 JPEG 编码器要求整个图像适合您的计算机内存。
  • 所有由 image-rs 支持的格式也受支持。
  • IIIF,允许您在本地重新创建可缩放的图像。当您的图像非常大(数百兆像素)时,这是推荐输出格式,因为大多数图像查看器不接受巨大的 PNG 或 JPEG。如果输出路径以 .iiif 结尾,将创建一个文件夹而不是单个文件,其结构遵循 IIIF 规范。此文件夹内将创建一个名为 viewer.html 的文件,您可以在浏览器中打开它以查看图像。

瓦片缓存

默认情况下,dezoomify-rs 完全在内存中工作,速度非常快。然而,最新版本增加了使用“瓦片缓存”的可能性。当您从命令行使用 dezoomify-rs --tile-cache my_caching_folder http://myurl.com 启动 dezoomify-rs 时,它将保存它下载的所有图像瓦片到指定的文件夹。如果下载在完成之前中断,您可以通过指定相同的瓦片缓存文件夹稍后恢复它。瓦片缓存还允许您手动获取单个瓦片,如果您想手动拼接它们。

去噪器

Google 艺术文化

为了从谷歌艺术与文化下载图片,只需打开 dezoomify-rs,在提示时输入查看页面的URL,例如 https://artsandculture.google.com/asset/light-in-the-dark/ZQFouDGMVmsI2w

Zoomify

您需要给 dezoomify-rs 提供指向 ImageProperties.xml 文件的 URL。您可以使用 dezoomify-extension 找到该文件的 URL。

或者,您可以通过打开网络检查器手动找到它。如果图像瓦片 URL 形式为 http://example.com/path/to/TileGroup1/1-2-3.jpg,那么要输入的 URL 是 http://example.com/path/to/ImageProperties.xml

IIIF

IIIF 稀疏器接受一个 info.json 文件的 URL 作为输入。

您可以使用 dezoomify-extension 找到该文件的 URL。

或者,您可以在加载图像时在浏览器中的网络检查器中找到此 URL。

DeepZoom

DeepZoom 稀疏器接受一个 dzi 文件的 URL 作为输入,您可以使用 dezoomify-extension 找到它。

您可以在加载图像时在浏览器中的网络检查器中找到此 URL。如果图像瓦片 URL 形式为 http://test.com/y/xy_files/1/2_3.jpg,那么要输入的 URL 是 http://test.com/y/xy.dzi

Zoomify PFF

PFF 是由 zoomify 开发的一种旧的可缩放图像文件格式。您可以将包含 requestType=1 的 pff 元信息 URL(一个包含 requestType=1 的 URL)提供给 dezoomify-rs,它将下载它。

Krpano

Krpano 是一种常用于全景、虚拟之旅、照片拼贴和其他 3D 可缩放图像的可缩放图像格式。dezoomify-rs 支持从此类图像中下载单个图像平面。您需要提供图像的 XML 元信息文件。

Nypl

纽约公共图书馆的数字收藏使用他们自己的可缩放图像格式,dezoomify-rs 支持。一些图像有可用的高分辨率版本,并与此软件兼容。其他图像则不行,您只需在浏览器中右键单击即可下载。要下载图像,只需在 dezoomify-rs 中输入其查看器页面的 URL,例如

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

IIPImage

IIPImage 是一个实现 互联网图像协议 的图像网络服务器。这些图像很容易通过它们的瓦片 URL 识别,其中包含 FIF=。您可以将包含 FIF= 的 URL 传递给 dezoomify-rs 以让它下载图像。

通用

如果您知道瓦片 URL 的格式,则可以使用此缩放器。例如,如果您注意到第一个瓦片的 URL 为

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

而第二个是

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

然后您可以根据一般格式进行猜测,并将以下内容提供给 dezoomify-rs

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

如果数字在 URL 中有前导零(如 image-01-00.jpg 而不是 image-1-0.jpg),则可以在 URL 模板中指定它们如下

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

自定义 yaml

自定义YAML缩放器是一个强大的工具,允许您以多种不同的格式下载分块图像,包括dezoomify-rs未明确支持的格式。要使用此缩放器,您需要创建一个tiles.yaml文件,这是一项有点技术性的工作。然而,我们有一个自定义YAML缩放器教程来帮助您。如果您在使用教程或将其应用于您的用例时遇到困难,您可以通过创建一个新的GitHub问题来与我们联系。

命令行选项

当从命令行使用dezoomify-rs时

USAGE:
    dezoomify-rs [FLAGS] [OPTIONS] [--] [ARGS]

FLAGS:
        --accept-invalid-certs    Whether to accept connecting to insecure HTTPS servers
        --help                    Prints help information
    -l, --largest                 If several zoom levels are available, then select the largest one
    -V, --version                 Prints version information

OPTIONS:
        --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]
        --connect-timeout <connect-timeout>
            Time after which we should give up when trying to connect to a server [default: 6s]

    -d, --dezoomer <dezoomer>                      Name of the dezoomer to use [default: auto]
    -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
        --logging <logging>
            Level of logging verbosity. Set it to "debug" to get all logging messages [default: warn]

    -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
        --max-idle-per-host <max-idle-per-host>
            Maximum number of idle connections per host allowed at the same time [default: 32]

    -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
    -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]
    -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
        --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]

ARGS:
    <input-uri>    Input URL or local file name
    <outfile>      File to which the resulting image should be saved

文档

  • 有关此工具的特定文档,请参阅dezoomify-rs维基百科。不要犹豫,通过创建新页面或修改现有页面来为其做出贡献。
  • 有关可缩放图像的通用文档,dezoomify维基百科可能很有用。

批处理模式

dezoomify-rs目前还没有一次下载多个图像的能力。然而,由于它是一个命令行应用程序,您可以在Windows中的for循环或Linux、MacOS(或使用wsl的Windows)中的bash脚本中使用它。

例如,在bash中,您可以创建一个名为urls.txt的文件,其中包含您想要缩放的URL,然后使用xargs与dezoomify-rs一起使用

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

依赖关系

~32–47MB
~627K SLoC