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日