收藏
回答

getImageInfo无法获取SVG图片的信息吗?

我使用getImageInfo函数获取网络SVG图片的长宽进行显示,但是获取到都是-1

回答关注问题邀请回答
收藏

1 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2020-04-26

    获取干什么

    ===========================

    svg源码里就有

    wx.request({
          url: 'http://service-gw.winside.com:8080/uploadFile/map/8a51523e-1ab2-41f3-83e8-c46d1be674af.svg',
          success(res) {
            // <svg height="" width=""
            var r1 = /(?:[\S\s]+)?<svg(?=.*(height)="(\d+)(?:[^"]+)?")(?=.*(width)="(\d+)(?:[^"]+)?")(?:[\S\s]+)?/,
            // <svg viewBox="0 0 1103 711"
              r2 = /(?:[\S\s]+)?viewBox="\d+ \d+ (\d+) (\d+)"(?:[\S\s]+)?/,
            // <svg style="height:***px;width:***px"
              r3 = /(?:[\S\s]+)?(?:<svg[^>]+style="(?=.*(height):(\d+)(?:[^>]+)?)(?=.*(width):(\d+)(?:[^>]+)?))(?:[\S\s]+)?/,
              str = '{}',
              def = { width: 0, height: 0 },
              info = false
            try {
              str = res.data.replace(r1, '{"$1":$2,"$3":$4}').replace(/\$(2|4)/, '0').replace(/\$1/, 'height').replace(/\$3/, 'width')
              info = str.length > 45 ? false : JSON.parse(str)
              if (!info) {
                str = res.data.replace(r2, '{"width":$1,"height":$2}').replace(/\$(1|2)/, '0')
                info = str.length > 45 ? false : JSON.parse(str)
                console.log('r2', info)
              }
              if (!info) {
                str = res.data.replace(r3, '{"$1":$2,"$3":$4}').replace(/\$(2|4)/, '0').replace(/\$1/, 'height').replace(/\$3/, 'width')
                info = str.length > 45 ? false : JSON.parse(str)
                console.log('r3', info)
              }
            } catch (e) {
              console.log(e)
              info = { width: 0, height: 0 }
            }
            info = info == false ? def : info
    
    
            console.log('ret', info)
          }
        })
    

    若认为该回答有用,给回答者一个[ 有用 ]吧!

    2020-04-26
    有用 2
    回复 5
    • So魚丸丷
      So魚丸丷
      2020-04-26
      我需要根据图片的宽高来显示叠加层的位置.
      2020-04-26
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2020-04-26回复So魚丸丷
      有svg地址吗,发一个看下
      2020-04-26
      回复
    • So魚丸丷
      So魚丸丷
      2020-04-26回复o0o有脾气的酸奶
      http://service-gw.winside.com:8080/uploadFile/map/8a51523e-1ab2-41f3-83e8-c46d1be674af.svg
      2020-04-26
      回复
    • So魚丸丷
      So魚丸丷
      2020-04-26回复o0o有脾气的酸奶
      我找到办法了.
      2020-04-26
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2020-04-26回复So魚丸丷
      恩,svg源码里就有
      2020-04-26
      1
      回复
登录 后发表内容
问题标签