html2canvas踩坑-安卓因屏幕分辨率高生成图片过大,导致无法分享图片问题

html2canvas踩坑–安卓因屏幕分辨率高生成图片过大,导致无法分享图片问题

前置条件:
年关将至,需求是活动类。要求根据后端返回的字段合成海报3屏长度的海报分享微信。因为开发的时候是用 chrome 模拟html2canvas生成图片后没有发现有问题,但是用真机调试时,发现安卓手机始终调不起微信卡住了。

排查过程:
通过在安卓手机调试发现,安卓机生成海报的大小要比ios生成的海报大的多。由此推测可能是移动端像素密度计算的问题。

设备像素比 (简称 dpr) 定义了物理像素和设备独立像素的对应关系,它的值可以按如下的公式的得到:

设备像素比 = 物理像素 / 设备独立像素 // 在某一方向上,x方向或者y方向

解决办法:
通过各种面向百度之后发现,,从 0.5.0 -beta4版本开始,html2canvas更新了图片放大清晰度解决方案,支持任意放大倍数,解决原插件图片偏移问题。
github上示例

在这里插入图片描述
在我的代码中,先是获取屏幕像素比,发现大多数的安卓手机像素比是3,相对应生成的图片自然就大,由于我们原生微信分享代码版本本身存在问题,然后通过scale属性进行统一设置,问题得以解决。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值