VUE + tiff.js 加载 tiff,tif 图片

4 篇文章 0 订阅

前段时间公司有个需求,就是前端要加载大量的tif 和 tiff 格式的图片
瞬间觉得头大如牛,没有一点思路,于是一直问度娘,功夫不负苦心人,终于让我找到了一款比较好用的插件 tiff.js

// 引入依赖
npm install tiff.js

使用

<div class="img-box">
	<div ref="imgContainer" class="tifcontent zoomimg"
     	 @mousewheel="handleZooming"
     	 v-loading.lock="tifLoading"
   	     @mousedown="handleDown"
	></div>
</div>
// 联调接口  获取tif
async getTiffContent (item) {
      this.tifLoading = true
      let offsetHeight = document.getElementsByClassName('img-box')[0].offsetHeight
      let offsetWidth = document.getElementsByClassName('img-box')[0].offsetWidth
      await getTiff({
        attachBatchId: item.attachUrl,
        attachName: item.attachName
      }).then(res => {
      // 引入tiff.js
        var Tiff = require('tiff.js')
        var tiff = new Tiff({ buffer: res.data })
        var canvas = tiff.toCanvas() //绘制canvas
        //获取宽高
        var width = tiff.width()
        var height = tiff.height()
        console.log(width, height)
        if (canvas) {
          canvas.setAttribute('style', 'width: 100%;')
          // 设置宽高 等比例缩放图片
          var scale = 1
          if (width > offsetWidth || height > offsetHeight) {
            if (width > height) {
              scale = offsetWidth / width
            } else {
              scale = offsetHeight / height
            }
          }
          canvas.setAttribute(
            'style',
            'width:' +
              width * scale +
              'px; height: ' +
              height * scale +
              'px;max-width:calc( 100vh* scale - 246px* scale );max-height: calc( 100vh - 180px);'
          )
          canvas.setAttribute('id', item.attachUrl)
          canvas.setAttribute('ref', 'canvas')
        }
      this.tifLoading = false
    },

不过在IE浏览器中加载tif图片会很卡,会出现如图所示的情况,目前没有找到解决办法,如有大佬遇到且已解决,欢迎指教

在这里插入图片描述

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值