当前位置: 首页 > 网络知识

OpenSeadragon 实战系列其他属性的使用

时间:2026-01-26 14:19:48

viewport的使用

  我们打开openseadragn的官网,可以找到下图所示的viewport

  点开viewport,你可以看到很多viewport的方法

  那么如何使用viewport呢?在基础篇中的示例代码中,我们定义了viewer

1 var viewer = OpenSeadragon(, 10 error:function(err) 13 }, 14 });

  之后要想使用viewport可以使用这种方式

viewer.viewport.method

将method替换成官网viewerport中的method方法即可,是不是很简单,常用的方法有

pointFrPixel(Point):将原始坐标转为视图坐标
deltaPixelsFrPoints:将视图坐标转化为像素坐标
deltaPointsFrPixels:将像素坐标转化为视图坐标
viewportToImageCoordinates(Point):将视图坐标转为图像坐标
getBounds:获取当前边界
注意这里的Point格式应为,在官方说明中,此处应该传递的是openseadragon.Point,如果只使用坐标转化,只需要按照传入即可。

Point的使用
  在上述的pointFrPixel方法中,你可以找到关于openseadragon.Point的属性及方法,如下图

我们可以看到openseadragon已经集成了一些方法,比如两点间距离的计算。要想使用Point也很简单

new OpenSeadragon.Point(x,y).method

viewer常用的方法
  点开官网中viwer的说明,我们可以找很多方法。当然我们一般使用的是addOverlay和addHandler,关于addOverlay相信各位在其他的博客中已经找到不少了,接下来我只简单地说明一下addHandler的使用。在viewer的说明页面你可以在右侧找到所有可以监听的事件

如果要监听点击事件我们可以这样写,这个也是官方提供的案例。

1 viewer.addHandler('canvasclick',function(event));

其他事件的监听类似。当然openseadragon也提供关于鼠标事件和键盘事件的简化处理类:MouseTracker。在官网中也可以找到说明:openseadragon.github.io/docs/OpenSeadragon.MouseTracker

MouseTracker的使用

MouseTracker是一个构造函数,需要你指定监听的区域,当然你也可以设置点击多久被视为单击事件,双击间隔多久被视为双击事件等等。创建一个MouseTracker也很简单

1 var mouse = new OpenSeadragon.MouseTracker();

其中element是要监听区域的ID,之后你就可以使用MouseTracker的各种方法了。

结束
  因为openseadragon所提供的API太多,所以这里也没有办法全部介绍,只把最常用的一些放上来了。关于viewer其中可以做的还有很多,比如监听用户左键落下后,不允许拖动画布,可以直接在监听里写

1 viewer.panVertical = false; 2 viewer.panHorizontal = false;



上一篇:C/C++ GetWindowRect()函数
下一篇:C++ 删除wchar_t *会导致堆损坏
OpenSeadragon
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素