用vue实现H5之canvas海报分享

之前有分享过用uni-app实现canvans的文章:https://www.jianshu.com/p/7c57ee8d1a31

实现大致相同,以下列出关键代码:

xml

<template>
  <div class="page-share-poster">
    <div class="share-canvas">
      <!-- canvas大小用2x尺寸 -->
      <canvas id="share-poster" width="510" height="868" />
    </div>
  </div>
</template>

js

获取canvas和context

// 获取canvas
getCanvas() {
  let canvas = document.getElementById('share-poster')
  canvas.width = 510
  canvas.height = 868
  return canvas
},
// 获取图形上下文context
getCxt(canvas) {
   return canvas.getContext('2d')
},
    

加载网络图片

// 加载图片
loadImg(url) {
  return new Promise((resolve, reject) => {
     let img = new Image()
     // 允许跨域
     img.setAttribute('crossOrigin', 'Anonymous')
     img.onload = () => {
       resolve(img)
     }
     img.onerror = () => {
        this.$showToast('图片下载失败')
     }
     img.src = url
  })
},

其它绘制代码与uni-app中使用一样

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容