首页 > 解决方案 > OpenSeaDragon 不在 dzc_output.xml 文件中显示多个图像

问题描述

我正在尝试使用 OpenSeaDragon 显示多个图像。我使用 Deep Zoom Composer 创建图像文件,它生成了以下 XML 文件(删节):

dzc_output.xml:

<?xml version="1.0" encoding="utf-8"?>
<Collection MaxLevel="8" TileSize="256" Format="jpg" NextItemId="5" ServerFormat="Default" xmlns="http://schemas.microsoft.com/deepzoom/2009">
  <Items>
    <I Id="0" N="0" Source="dzc_output_images/ft1.xml">
      <Size Width="825" Height="584" />
      <Viewport Width="5.2402050398801272" X="-0" Y="-0" />
    </I>
    <I Id="1" N="1" Source="dzc_output_images/ft2.xml">
      <Size Width="824" Height="583" />
      <Viewport Width="5.2375806686733934" X="-1.0500455705877254" Y="-0" />
    </I>
    <!--3 more images not shown as not necessary-->
  </Items>
</Collection>

我创建了一个非常简单的 HTML 页面来显示查看器(我计划在最终项目中使用 Django)。我使用以下代码创建了查看器:

var viewer = OpenSeadragon({
                id: "openseadragon1",
                prefixUrl: "openseadragon/images/",
                tileSources: "imagesources/dzc_output.xml",
                sequenceMode: true
            });

python -m http.server用来提供 html 页面所在的文件夹。它适用于单个图像。但是,由于这个 dzc_output.xml 文件包含多个图像,当我加载页面时,查看器会显示“无法打开 [object Object]:无法加载 TileSource”。滚动图像会产生此错误:“无法打开 [object Object]:HTTP 404 试图加载 TileSource”

我不确定这里有什么问题。任何帮助都会很好。

标签: javascriptxmldeepzoomopenseadragon

解决方案


确实……那是“Deep Zoom Collection”,与 OpenSeadragon 支持的“Deep Zoom Image”格式不同。我们有一个支持 DZC 的问题:https ://github.com/openseadragon/openseadragon/issues/67 ,但到目前为止还没有任何行动。

此时,您有多种选择:

  • 而是从 Deep Zoom Composer 将图像导出为 DZI。
  • 编写一个脚本,将 DZC 输出转换为一系列 DZI,以便在 OSD 中使用。
  • 帮助我们实现对 OSD 的原生 DZC 支持。

现在我们有了真正的多图像,支持 DZC 应该不会太难。一方面,如https://github.com/openseadragon/openseadragon/issues/67中所述,DZC 还包括一个带有图像缩略图的附加图块金字塔(请参阅https://docs.microsoft.com/en-我们/previous-versions/windows/silverlight/dotnet-windows-silverlight/cc645077(v=vs.95)#collections了解更多信息)。这是一个很好的优化(节省网络流量),但我们可以跳过它作为初学者,只使用 DZC 作为 DZI 的目录。

请注意,此问题也在https://github.com/openseadragon/openseadragon/issues/1735中讨论。


推荐阅读