html2canvas透明度,html2canvas 生成的图片有左上透明边或者白边的问题

本文介绍了如何使用html2canvas.js插件实现HTML转图片,并解决图片模糊和内容偏移问题。通过调整画布大小和使用context.translate纠正父元素margin/padding影响,提供了解决方案和代码实例。
摘要由CSDN通过智能技术生成

最近项目需要做一个html转图片,并且长按分享的功能.在网上找了一下,就找到了html2canvas.js这个插件.

开发过程中主要遇到2个问题.

1.转出来的图片不够清晰,很模糊.但是左上不会有透明或者白边的问题

解决:上网搜了一下解决方案,主要是要放大画布.原理未细究.

2.图片清晰,但是图片内容会产生偏移.经过测试发现是父节点的margin和padding造成的偏移

解决:

...javascript

var cw = document.querySelector('#bg').clientWidth,

toimg = document.querySelector('#toimg'),

iw = toimg.clientWidth;

context.scale(2,2);

context.translate((cw-iw)/2*-1,toimg.getBoundingClientRect().top*-1);

...

主要是用context.translate(x,y)这个方法纠正偏移量.

因为图片百分比居中,x需为确定数值,所以动态计算左边距成px,y同理.

如果需要转的html包裹的父类宽度==body的宽度,可以使用offsetLeft和offsetTop来赋值x,y.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值