繁体   English   中英

OpenSeadragon 缩放问题

[英]OpenSeadragon zoom issues

我正在尝试学习 openseadragon 缩放功能,但是,不了解某些内容。 我整理了一个简单的例子并且有几个问题: https : //codepen.io/Ivalina/pen/poPbaMv

当页面首次加载时,我如何确保当我立即单击缩小时,图像不会变得比原来小。 这令人困惑,因为我希望它从最小的开始。 (优先)

另一个问题,我确实设置了最小和最大缩放级别,但是当我继续点击放大时,它肯定会超过 3 次点击。 放大后缩小也是如此。有没有办法将缩放限制为特定的点击次数(最好是 3)。

var tileSources = {
    Image: {
        xmlns: "http://schemas.microsoft.com/deepzoom/2008",
        Url: "//openseadragon.github.io/example-images/duomo/duomo_files/",
        Format: "jpg",
        TileSize: "256",
        Size: {
            Width:  "13920",
            Height: "10200"
        }
    }
};

var viewer = OpenSeadragon({
    id: "seadragonviewer",
    prefixUrl: "//openseadragon.github.io/openseadragon/images/",
    tileSources: tileSources,
    visibilityRatio: 1.0,
    constrainDuringPan: true,
    minZoomLevel: 0,
    maxZoomLevel: 2,
    zoomPerClick: 1.5,
    gestureSettingsMouse: {
      clickToZoom: false,
      scrollToZoom: false,
      flickEnabled: true
    },
    gestureSettingsTouch: {
      clickToZoom: false
    },
    visibilityRatio: 1.0,
    useCanvas: false
});

这本身不一定是一个答案,但我需要更多的空间而不是评论,所以这里是:

OSD“缩放”基于图像宽度和查看器宽度之间的关系。 当图像完全水平填充查看器时为 1。 如果放大到查看器仅显示图像宽度的一半,则缩放为 2。放大到查看器只能显示宽度的四分之一,并且缩放为 4。 maxZoomLevel 选项基于那些条款。

默认情况下,您可以放大的最远距离基于 maxZoomPixelRatio 选项中指定的图像像素与屏幕像素的比率(默认为 1.1)。 换句话说,如果 maxZoomPixelRatio 为 1,那么您只能放大到足以看到 1:1 的图像像素。 正如您所发现的,您可以使用 maxZoomLevel 覆盖它,但是您可以获得的与实际像素的接近程度将取决于您的查看器的大小。

无论如何,如果您想要保证点击三下并且您不关心与实际像素的接近程度,这里有一个场景:

如果您的图像自然地在水平维度上填充查看器,您将获得 1 的起始缩放。如果 zoomPerClick 设置为 2,则在第一次单击时,您的缩放现在将为 2。在第二次单击时,它将为 4 (缩放是乘法),并且在第三次缩放时它将是 8。因此,在这种情况下,您应该将 maxZoomLevel 设置为 8。

如果您的图像不是以 1 的缩放开始(因为它足够高,它不会填满查看器的宽度),则必须将 maxZoomLevel 建立在该起始缩放的基础上。 如果您有不同的 zoomPerClick,则必须考虑到这一点。

如果您确实关心第三次点击时可以获得的实际像素的接近程度,则需要调整 zoomPerClick 使其对于每个查看器大小/图像大小比率都不同。

我希望这些额外的背景信息有帮助!

因为缩放级别是基于与视口的关系,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM