公众号开发,base64图片,在微信页面中不显示的问题

需求:一张背景图片,添加当前浏览人的微信头像和昵称,添加推广二维码,合成为一张图片,长按保存下来。
环境:uni-app开发,打包为h5,在微信中打开
方案一:(交互繁琐,放弃)
    1. 正常布局,添加保存按钮
    1. 点击保存按钮,创建画布,将布局元素依次绘入画布。
    1. 绘制完成后,指定绘图区域提取图片。
    1. 创建弹窗Image,将提取的图片显示在image中,用户长按保存
方案2:
    1. 创建屏外画布,将背景图片绘制入画布中,依次将微信头像、昵称、二维码、活动倒计时等信息绘制入画布中,指定绘图区域提取图片。
    1. 创建image,将提起的图片显示出来
    1. 悬窗提醒:长按保存图片
    1. 用户长按image,即可弹窗微信操作窗,保存图片即可
问题:常用浏览器、微信开发者工具均可正常显示,但真机中image无显示内容
纠错过程:
1. 首先怀疑是否绘制成功:经弹窗显示,图片绘制成功
2. 怀疑画布转换图片时是否成功:经弹窗显示,图片转换成功
3. 怀疑base64图片格式错误:经弹窗显示,格式正确
4. 怀疑base64图片过大:经打印计算和各种尺寸的压缩,排除此条
5. 调整画布尺寸:首先保持与手机屏幕相等,成功显示。

原因: 由于提供的海报图片未限制尺寸,绘图时又选择原图绘入,使得canvas尺寸适应图片大小时尺寸过大,导出图片时发生异常。但根本原因是什么,仍未能准确定位(经查,几乎所有的浏览器都对canvas做了尺寸或面积上的限制,但具体数值未知)。
最终方案:尝试逐渐增大尺寸,结合实际需求,最终决定将画布尺寸设置在7501500,并将海报图片严格限制在7501500的尺寸内。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,106评论 0 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 6,916评论 0 2
  • 今天上午陪老妈看病,下午健身房跑步,晚上想想今天还没有断舍离,马上做,衣架和旁边的的布衣架,一看乱乱,又想想自己是...
    影子3623253阅读 2,932评论 3 8