首页 > 其他分享 >OpenSeadragon 实战系列其他属性的使用

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

时间:2023-05-11 15:24:18浏览次数:39  
标签:实战 MouseTracker Point viewer OpenSeadragon 坐标 viewport 属性

viewport的使用

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

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

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

 1 var viewer = OpenSeadragon({
 2             id: "openseadragon1",
 3             prefixUrl: root + "/public/images/icon/",
 4             tileSources:{
 5                 tileSource:root + "/api/get/ali/image",
 6                 loadTilesWithAjax:true,
 7                 success:function(res){
 8                     console.log(res)
 9                 },
10                 error:function(err){
11                     console.log(err)
12                 }
13             },
14         });

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

viewer.viewport.method

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

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

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

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

new OpenSeadragon.Point(x,y).method

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

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

 1 viewer.addHandler('canvas-click',function(event){
 2     // canvas-click事件为我们提供了Web坐标中的位置。
 3     var webPoint = event.position;
 4  
 5     //将其转换为视口坐标,OpenSeadragon坐标的通用语言。
 6     var viewportPoint = viewer.viewport.pointFromPixel(webPoint);
 7  
 8     //从视口坐标转换为图像坐标。
 9     var imagePoint = viewer.viewport.viewportToImageCoordinates(viewportPoint);
10  
11     //显示结果
12     console.log(webPoint.toString(),viewportPoint.toString(),imagePoint.toString());
13 });

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

MouseTracker的使用

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

1   var mouse = new OpenSeadragon.MouseTracker({
2             element:'openseadragon1'
3         });

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

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

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

 

标签:实战,MouseTracker,Point,viewer,OpenSeadragon,坐标,viewport,属性
From: https://www.cnblogs.com/ybqjymy/p/17391125.html

相关文章

  • OpenSeadragon 实战系列第三方插件
    序言在我们的项目中,一般不可能只是简单的显示图片,对应着还需要做一些图像标注、图像颜色过滤等操作,比如一些医学病理切片。所以openseadragon也为我们提供了一些插件,我们打开官网,找到plugins这些插件中有很多是中间件,各位根据自己的需求自行研究把,在我的项目中只使用......
  • .Net Core 4. VS2022 + Core6.0 + Razor 设置model特性改变显示的属性名称,通过@page指
    通过Model的特性修改显示的内容/规则目前在Index页面上,显示的表头都是model的字段名,在实际项目中通常不会这么做,这里我们修改一下Model部分来让表头显示的更加直观。1.引入System.ComponentModel.DataAnnotations.Schema,也可以事后根据提示自动添加。2.[Display(Na......
  • OpenSeadragon 实战系列dzi图像切割命名规则篇
    序言根据前边的两篇文章,我们已经可以实现图像的显示了。但是现在我们显示的还是由微软软件自动生成的图片,在实际运用中,需要由后端将图片切割,具体切割方式在微软的dzi图片格式说明中也有,地址:https://docs.microsoft.com/en-us/previous-versions/windows/silverlight/dotnet-wi......
  • ts的4.9属性之satisfies
    interfacePalette{red:number[];green:string;blue:number[];black?:boolean;}typeColors='red'|'green'|'blue';typeRGB=[number,number,number];constpalette={red:[255,0,0],g......
  • 模板元编程实战--TypeList算法--查找
    从一个类型列表中查找是否包含某一个类型。要从一个类型列表中查找,那么首先要获得每一个类型,然后与特定的类型比较,然后将结果保存起来。首先考虑一下Elem应该如何实现。Elem将会展开参数列表,然后处理,这里使用之前演示Fold高阶函数回调处理:template<TLIn,typenameT>clas......
  • ALLEGRO用COP命令复制无属性过孔时自动添加过孔为GND网络或者其它电源网络
    1,COPY命令复制无属性的过孔步骤,下面FIND面板选择过孔,右边Options里的Retainnetofvias里勾去掉,如果要跟网络一起复制就勾上 按照图1里的操作,是无属性的过孔复制,但实际复制后是图2里的样子,过孔自动带了VCC3V3的网络,其实是因其它层有Shape铺铜VCC3V3的网络(这里做个注释,因为我......
  • [系统性能优化实践]JVM进阶实战之监控工具(Prometheus)
    1Prometheus监控SpringCloudGateway1.1简述API网关作为应用服务与外部交互的入口,通过对API网关的监控,可以清晰的知道应用整体的请求量,以便根据不同的并发情况进行扩容处理。对API网关的监控也是相当必要的。通过Prometheus监控Gateway与监控普通Springboot项目几乎......
  • SpringSecurity实战(二)-基于数据库认证
    pom依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId&......
  • HTML中meta标签的那些属性
    <meta>标签是HTML中用于描述网页元信息的元素。它位于<head>部分,不会显示在页面内容中,但对于浏览器、搜索引擎等具有重要作用。主要作用有:定义文档的字符编码、提供网页的描述信息、关键词、作者、视口设置等,这些信息有助于搜索引擎理解和索引网页内容。 <meta>标签的......
  • 2023.5.9核心命令讲解实战
    目录1.帮助命令man2.文件和目录操作命令lscdmkdircpmvrmtouchbasenamedirnamechattrlsattrmd5sum3.查看文件及内容处理命令vimvicat查看文件内容morelesstailheadcut提取字段、字符uniq去重sort排序wc统计tr字符操作vimdiffdos2unix......