【问题标题】:How to control the loading order of multiple images in openseadragon如何控制openseadragon中多张图片的加载顺序
【发布时间】:2016-08-03 04:27:06
【问题描述】:

在我的情况下,我在查看器中加载了 10 张具有相同边界的图像。每张图片一个接一个地排列。

// source is an array of url images.

for(i=0;i < source.length-1;i++){
        this.viewer.addTiledImage({
                tileSource: source[i],
                index: i,
                opacity:0
            });
}

我的意图是使用滑块(范围输入)控制每个图像的不透明度,滑块将对应的图像不透明度设置为 1,并让其他不透明度。这很好用。

这个想法是预加载图像并平滑地更改图像。

问题

缩放或平移时所有图像同时加载,因此我想控制加载顺序并优先考虑可见图像然后加载下一张图像,依此类推。

我该怎么做?我找不到任何暂停加载图块的方法。

感谢您的帮助。

【问题讨论】:

    标签: openseadragon


    【解决方案1】:

    您可以尝试使用“打开”事件并在上一张图片加载后添加下一张图片。比如:

    var i =0, viewer = this.viewer;
    viewer.addTiledImage({
        tileSource: source[i],
        index: i,
        opacity:0
    });
    viewer.addHandler('open', function() {
        i++;
        if (source[i]) {
            viewer.addTiledImage({
                tileSource: source[i],
                index: i,
                opacity:0
            });
        } else {
            viewer.removeAllHandlers('open');
        }
    });
    

    请注意,这是未经测试的示例代码,但您应该明白这一点。而且您实际上应该使用 removeHandler() 而不是 removeAllHandlers(),但这只是一个示例。

    【讨论】:

      【解决方案2】:

      我可以通过控制不透明度而不是控制网络下载来解决我的问题,openseadragon 没有办法在 dzi 图像级别控制下载顺序,所以方法是控制不透明度,因为 0 不透明度不做任何下载。感谢 openseadragon 贡献者帮助我解决这个问题。

      https://github.com/openseadragon/openseadragon/issues/971

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-11
        • 2015-12-23
        • 1970-01-01
        • 1970-01-01
        • 2013-01-14
        • 2021-06-14
        • 2020-10-13
        • 1970-01-01
        相关资源
        最近更新 更多