77777778888888 2023-03-31 11:37 采纳率: 45.5%
浏览 22
已结题

canvas画布下载图片空白

<el-button type="primary" class="footer-button"  @click='signName'>签名</el-button>
              <el-dialog title="电子签名" :visible.sync="dialogTableVisible" :append-to-body="true">
                  <sign-canvas
                  class="sign-canvas"
                  ref="SignCanvas"
                  :options="options"
                  v-model="value"/>
                  <div class="btnList">
                      <el-button @click="canvasClear" type="primary">清空</el-button>
                      <el-button @click="saveAsImg" type="primary">保存</el-button>
                      <el-button @click="downloadSignImg" type="primary">下载</el-button>
                  </div>
              </el-dialog>
value: null, //画布内的值 
     options: {
      isFullScreen: true, //是否全屏手写 [Boolean] 可选
      isFullCover: false, //是否全屏模式下覆盖所有的元素 [Boolean] 可选
      isDpr: false, //是否使用dpr兼容高倍屏 [Boolean] 可选
      lastWriteSpeed: 1, //书写速度 [Number] 可选
      lastWriteWidth: 2, //下笔的宽度 [Number] 可选
      lineCap: "round", //线条的边缘类型 [butt]平直的边缘 [round]圆形线帽 [square]    正方形线帽
      lineJoin: "round", //线条交汇时边角的类型  [bevel]创建斜角 [round]创建圆角 [miter]创建尖角。
      canvasWidth: 150, //canvas宽高 [Number] 可选
      canvasHeight: 200, //高度  [Number] 可选
      isShowBorder: true, //是否显示边框 [可选]
      bgColor: "#fff", //背景色 [String] 可选
      borderWidth: 1, // 网格线宽度  [Number] 可选
      borderColor: "#000", //网格颜色  [String] 可选
      writeWidth: 5, //基础轨迹宽度  [Number] 可选
      maxWriteWidth: 30, // 写字模式最大线宽  [Number] 可选
      minWriteWidth: 5, // 写字模式最小线宽  [Number] 可选
      writeColor: "#101010", // 轨迹颜色  [String] 可选
      isSign: true, //签名模式 [Boolean] 默认为非签名模式,有线框, 当设置为true的时候没有任何线框
      imgType: "png", //下载的图片格式  [String] 可选为 jpeg  canvas本是透明背景的
  },

canvasClear(){
    console.log("狗东西")
  this.$nextTick(()=>{
  console.log('清空')
  console.log(this.$refs.SignCanvas[0].canvasClear())//undefined
  this.$refs.SignCanvas[0].canvasClear()
  })
},
saveAsImg() {
        this.img = this.$refs.SignCanvas[0].saveAsImg();
        console.log(this.img);
    },
 downloadSignImg() {
              console.log("下载")
              console.log(this.$refs.SignCanvas[0].downloadSignImg())//undefined
             this.$refs.SignCanvas[0].downloadSignImg();
    },
 signName(){
      this.dialogTableVisible=true;
    }

图一:显示页面

img


为什么this.$refs.SignCanvas[0].downloadSignImg();和this.$refs.SignCanvas[0].canvasClear()都是打印的undefined,而且下载的图片都是空白

  • 写回答

1条回答 默认 最新

  • 简效 2023-03-31 11:47
    关注

    你为什么要写 [0] 啊

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月31日
  • 创建了问题 3月31日

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line