Openseadragon 在后台下载
Openseadraon download in background
我正在尝试使用 openseadragon (OSD) 2.2.1 版下载完整尺寸的深度缩放图像。
我的图像在服务器上,我可以使用 OSD 打开它们。我的下载步骤是:
- 使用
将图像列表加载到正文中
- 使用复选框检查要下载的图像
- 点击'Download'按钮下载
下载功能具有以下功能:
- 将图像列表加载到 gridview
- 创建 Canvas 并附加到正文
- 如果不存在则创建 OSD 查看器
- 打开第一个选中的图像使用:viewer.open(tileSources)
- 添加 OSD 处理程序“open”以设置源的完整大小。
- 绘制形状当前图像有它们
- 添加 OSD 处理程序 'tile-drawing' 用于设置简单时间变量的值
- 设置每 10 秒检查一次变量变化的时间间隔。如果变量在最后 10 秒内没有变化,则表示所有图块都已绘制。
- 如果绘制了所有图块,请使用 'File-Saver' 库下载图像
OSD 查看器源的全尺寸:
$("#OSDelement").attr("style", "height: " + viewer.world.getItemAt(0).source.dimensions.y / window.devicePixelRatio) + "px;" +
"width: " + (viewer.world.getItemAt(0).source.dimensions.x / window.devicePixelRatio) + "px");
网站的示例模型是:
当浏览器的选项卡处于活动状态时,一切都可以正常下载(下载需要时间,但它正在完成它的工作)。问题是我正在尝试在 'background' 中下载。当我转到不同的选项卡时,OSD 磁贴停止加载。当浏览器的选项卡未处于活动状态时,如何强制打开 OSD 并加载图块?
有时,当每个浏览器会话的选项卡未处于活动状态时它会开始下载,但根本不绘制图块。它下载空文件,因为查看器上没有图块。完全没有错误。
请给我一些想法。谢谢!
它在后台不起作用的原因是它使用了 requestAnimationFrame,当您的选项卡在后台时它会暂停。一种解决方法是执行以下操作:
OpenSeadragon.requestAnimationFrame = function(callback) {
setTimeout(callback, 16);
};
我正在尝试使用 openseadragon (OSD) 2.2.1 版下载完整尺寸的深度缩放图像。 我的图像在服务器上,我可以使用 OSD 打开它们。我的下载步骤是:
- 使用 将图像列表加载到正文中
- 使用复选框检查要下载的图像
- 点击'Download'按钮下载
下载功能具有以下功能:
- 将图像列表加载到 gridview
- 创建 Canvas 并附加到正文
- 如果不存在则创建 OSD 查看器
- 打开第一个选中的图像使用:viewer.open(tileSources)
- 添加 OSD 处理程序“open”以设置源的完整大小。
- 绘制形状当前图像有它们
- 添加 OSD 处理程序 'tile-drawing' 用于设置简单时间变量的值
- 设置每 10 秒检查一次变量变化的时间间隔。如果变量在最后 10 秒内没有变化,则表示所有图块都已绘制。
- 如果绘制了所有图块,请使用 'File-Saver' 库下载图像
OSD 查看器源的全尺寸:
$("#OSDelement").attr("style", "height: " + viewer.world.getItemAt(0).source.dimensions.y / window.devicePixelRatio) + "px;" +
"width: " + (viewer.world.getItemAt(0).source.dimensions.x / window.devicePixelRatio) + "px");
网站的示例模型是:
当浏览器的选项卡处于活动状态时,一切都可以正常下载(下载需要时间,但它正在完成它的工作)。问题是我正在尝试在 'background' 中下载。当我转到不同的选项卡时,OSD 磁贴停止加载。当浏览器的选项卡未处于活动状态时,如何强制打开 OSD 并加载图块? 有时,当每个浏览器会话的选项卡未处于活动状态时它会开始下载,但根本不绘制图块。它下载空文件,因为查看器上没有图块。完全没有错误。
请给我一些想法。谢谢!
它在后台不起作用的原因是它使用了 requestAnimationFrame,当您的选项卡在后台时它会暂停。一种解决方法是执行以下操作:
OpenSeadragon.requestAnimationFrame = function(callback) {
setTimeout(callback, 16);
};