html2canvas 在线引入,html转canvas工具-html2canvas.js

作用描述

项目中遇到动态生成海报的需求,在Web前端中,生成图片非Canvas莫属。实际工作中,为了提高效率,推荐一个轻松地将HTML代码转换成Canvas的工具:html2canvas。

学习途径

主要API

绘制图像: drawImage()

获取图像数据: getImageData()

重写图像数据: putImageData()

导出图像: toDataURL()

如何使用

安装:

npm install --save html2canvas@1.0.0-rc.4

在需要生成图片的页面中引入:

import html2canvas from 'html2canvas';

html代码块:

js代码块:

// 引入html2canvas

import html2canvas from 'html2canvas'

// 注册组件

data() {

return {

htmlUrl: ''

}

},

components: {

html2canvas

},

methods: {

// 页面元素转图片

toImage() {

let option = {

scale: 3,

useCORS: true,

backgroundColor: null

};

// 第一个参数是需要生成截图的元素,第二个是自己需要配置的参数

html2canvas(this.$refs.imageTofile,option).then((canvas) => {

let url = canvas.toDataURL('image/png');

this.htmlUrl = url;

// 把生成的base64位图片上传到服务器,生成在线图片地址

//this.sendUrl();

})

},

}

出现的问题及解决方案

① 图片模糊问题

有时候发现,导出的图片局部有些图片看起来没有原图那么清晰,这其实是因为使用了背景图片的原因。解决方法也很简单,就是直接使用 标签就好了。

② 图片不显示问题

发现有些图片并没有出现在导出的图片中,这基本上就是因为图片素材出现跨域,也就是说图片所在的域名与你项目所在域名不一致。这个问题的解决方案就是 html2canvas 使用时多加以下两个配置项就好了。

allowTaint: true,

useCORS: true,

③ PNG图片不透明问题

用到透明的PNG图片作为背景图,可是结果最后生成的图片却并不透明,这是因为 html2canvas 生成的canvas背景颜色默认为白色的缘故,所以导出的图片背景颜色当然也是白色。解决方案也是添加一个配置项。

backgroundColor: null

④终端兼容性问题

测试发现,安卓可以正常生成图片,而在苹果手机有的系统上实现不了生成图片的功能,经过查阅,对html2canvas进行了降版本处理,安装html2canvas@1.0.0-rc.4版本,测试正常。

npm install html2canvas@1.0.0-rc.4

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值