canvas用生成图片然后下载到本地?

查看:79
本文介绍了canvas用生成图片然后下载到本地?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我的需求是:canvas用生成图片然后下载到本地
问题:无法生成图片
代码:
1.生成图片的代码

  CanvasToImg () {
        var canvas = document.getElementById('Anon-crateCard')
        var clientWidth = document.documentElement.clientWidth
        var canvasWidth = Math.floor(clientWidth * 200 / 720)
        canvas.setAttribute('width', canvasWidth * 4 + 'px')
        canvas.setAttribute('height', canvasWidth * 4 + 'px')
        if (canvas.getContext) {
          var ctx = canvas.getContext('2d')
          // drawing code here
        } else {
          // canvas-unsupported code here
        }
        var img = new Image()
        img.onload = function () {
          // 执行drawImage语句
          ctx.drawImage(img, 0, canvasWidth / 10, canvasWidth * 3.6, canvasWidth * 3.6)
          ctx.drawImage(document.images[0], canvasWidth / 2.6, canvasWidth / 2.2, canvasWidth / 1.5, canvasWidth / 1.5)
          ctx.drawImage(document.getElementsByClassName('urlImg')[0].children[0].children[0], canvasWidth * 1.2, canvasWidth * 1.9, canvasWidth * 1.2, canvasWidth * 1.2)
        }
        img.src = 'test.png'
        var image = canvas.toDataURL('image/png')
        window.location.href = image
      }

我绘制canvas后用他的APIcanvas.toDataURL('image/png')的方法生成,然后页面跳转生成了一个白页面,页面结果中的img是这样的

<img style="-webkit-user-select: none; max-width: 3750px;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...=">

并没有显示图片这是为什么?

解决方案

代码执行顺序问题。你把最后两句话放在onload函数最后再试试看

这篇关于canvas用生成图片然后下载到本地?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆