当前位置: 首页 > article >正文

VUE3+TS使用OpenSeadragon学习之旅,实现多图片切换效果

1.官方网站:OpenSeadragon

2.使用npm下载插件:npm install openseadragon

3.在 index.html文件引入资源

  <link rel="stylesheet" href="node_modules/openseadragon/build/openseadragon/openseadragon.css" />
  <script src="node_modules/openseadragon/build/openseadragon/openseadragon.min.js"></script>

4.组件使用(一张图片显示效果)

1.引入OpenSeadragon 
import OpenSeadragon from "openseadragon"

2.存放图片的标签
 <div id="openseadragon1" class="w-full h-full"></div>

3.初始化实例
const viewer= OpenSeadragon({
        id: "openseadragon1",//标签id
        showNavigator: true, // 是否显示导航缩略图
        prefixUrl: "/public/openseadragon/images/", //插件小图标
        tileSource = {
          type: "image",//图片的类型
          url: '',//图片的url
        }
      })

5.显示多图片切换

1.引入OpenSeadragon 
import OpenSeadragon from "openseadragon"

2.存放图片的标签
 <div id="openseadragon1" class="w-full h-full"></div>

3.初始化实例
const viewer: any = ref("")
const initOpenSeadragon = () => {
      viewer.value = OpenSeadragon({
        id: "openseadragon1",
        showNavigator: true, // 是否显示导航缩略图
        prefixUrl: "/public/openseadragon/images/", //插件小图标
      })
}

4.定义函数:加载不同图片
const loadImage = (imageUrl: any) => {
      viewer.value.close() // 清除之前加载的图像
      if (imageUrl) { //判断传进来的url是否有值
        const tileSource = {
          type: "image",
          url: imageUrl,
        }
        viewer.value.open(tileSource) // 设置新的tileSources并加载新图像
      } else {
        message.warning("未上传图片")
      }
}
5.在页面加载之后onMounted里获取请求,获取到相关数据后调用初始化方法initOpenSeadragon 
 let listUrl: any = ref({})
 onMounted(() => {
       const { code, data } = await API.getGrowthImageInfo()//发起请求
      if (code === 200) {
        const list = JSON.parse(data.successfulImageUrl)
        ......//处理数据等相关的
        initOpenSeadragon()//调用初始化方法initOpenSeadragon 
      }
 })

6.在点击切换按钮时调用loadImage方法
    loadImage(url)//url是指传图片url

注意 prefixUrl: "/public/openseadragon/images/", 插件小图标来自于官网下载包里面的images文件夹下,可自行放在vue项目的静态资源文件夹里


http://www.kler.cn/a/228681.html

相关文章:

  • Nginx location 和 proxy_pass 配置详解
  • Express中间件
  • 当PHP遇上区块链:一场奇妙的技术之旅
  • 动手学大数据-3社区开源实践
  • 构建安全防线:基于视频AI的煤矿管理系统架构创新成果展示
  • 考研计算机组成原理——零基础学习的笔记
  • sklearn实现数据标准化(Standardization)和归一化(Normalization)
  • 通过大疆PSDK,将第三方摄像头的视频流推到M300遥控器显示
  • Android 应用添加系统签名权限的几种方式实现介绍
  • 算法每日一题: 使用循环数组所有元素相等的最少秒数 | 哈希
  • 按时间维度统计次数案例
  • Unity 开发注意事项
  • arping交叉编译
  • 【C++】类和对象(2)
  • DL/T1578-2021电力线路多旋翼无人机巡检系
  • [Python] 什么是逻辑回归模型?使用scikit-learn中的LogisticRegression来解决乳腺癌数据集上的二分类问题
  • 典型数据结构的模板实现
  • Python调用pyspark报错整理
  • Class 类
  • SpringBoot实战项目第一天
  • 为什么选择AGPL3.0开源协议
  • ROS从入门到精通4-1:Docker安装与常用命令总结
  • Windows自动化实现:系统通知和任务栏图标自定义
  • jmeter-04创建请求
  • 类银河恶魔城学习记录1-5 CollisionCheck源代码 P32
  • 2024 高级前端面试题之 性能优化模块 「精选篇」