收藏
回答

Snapshot 对象没有宽高属性

https://developers.weixin.qq.com/miniprogram/dev/api/skyline/Snapshot.html

按照文档中的方法, 获取到 Snapshot 对象, 但是Snapshot对象并没有文档中所说的 number width画布宽度,number height画布高度 属性, 请问这个画布的宽高从哪里获取, 特别是调用takeSnapshot方法, 并返回rgba数据的时候, 没有宽高没办法处理这个图像的数组


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

3 个回答

  • Eric Huang
    Eric Huang
    04-26

    导出图片的宽高和 snapshot 尺寸一致(物理像素)

    04-26
    有用
    回复 3
    • 大松鼠
      大松鼠
      04-28
      实测绝对不一样
      04-28
      回复
    • 大松鼠
      大松鼠
      05-06
      那这个物理像素该如何获取呢? 现在获取到的宽高跟实际截图的宽高不是一样的
      05-06
      回复
    • Eric Huang
      Eric Huang
      05-06回复大松鼠
      物理像素是 css 尺寸(逻辑像素) * devicePixelRatio 得到的,也就是屏幕实际渲染的尺寸。 比如你 css 宽高是 100x100, pixelRatio 是 2,那物理像素就是 200 x 200. 导出的 snapshot 截图也是 200x200
      05-06
      回复
  • 大松鼠
    大松鼠
    04-28

    我理解是这样的: node.takeSnapshot type: 'arraybuffer' format: 'rgba', 调用这个方法后返回arraybuffer, 这个arraybuffer是存粹的630px * 1010px的rgba像素点数据, 还是png格式图片的数据流格式呢?

    04-28
    有用
    回复 1
    • Eric Huang
      Eric Huang
      05-06
      这里你指定了 rgba 格式,那导出的图片就是 rgba 的格式。 rgba 每个像素占4 字节 [rgba]
      05-06
      回复
  • 村姑家小羊
    村姑家小羊
    04-26

    可以这样写,一一对应上就好了~

    比如有个view你想要截图,就用一个snapshot把这个view包裹起来。

      <snapshot id="SnapShot1" class="SnapShot1">
        <view class="cardCanvas1">
         </view>
      </snapshot>
    


    然后样式中,这两个样式大小写成一样就可以了,截图出来的就是对应的大小。

    .SnapShot1 {
      position: absolute;
      width: 630rpx;
      height: 1010rpx;
    }
    
    .cardCanvas1 {
      position: absolute;
      width: 630rpx;
      height: 1010rpx;
    }
    
    
    04-26
    有用
    回复
登录 后发表内容