热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

小程序生成分享图——总结

H5的生成分享图,一般使用的都是html2canvas,所以在小程序里遇到这个需求,第一反应也是它,所以一鼓作气把分享图的样式都写完了,BUT,,,白写了小程序不是HTML而是WX

H5的生成分享图,一般使用的都是html2canvas,所以在小程序里遇到这个需求,第一反应也是它,所以一鼓作气把分享图的样式都写完了,BUT,,,白写了

小程序不是HTML而是WXML,所以要使用html2canvas就需要用webview,内嵌H5页面

接下来就是小程序canvas踩坑集了

网络图片不能直接绘制,需要先使用wx.getImageInfo 和 wx.downloadFile 获取图片

官网提供的片段:

const ctx = wx.createCanvasContext(‘myCanvas‘)
wx.chooseImage({
success(res) {
ctx.drawImage(res.tempFilePaths[0], 0, 0, 150, 100)
ctx.draw()
}
})

图片适配,绘制的图片可能需要裁剪缩放,drawImage()的详解看这里:https://blog.csdn.net/vivian_jay/article/details/68933161

图片真机绘制不出来,看一眼,是不是打开调试就出来了,有可能是图片的网络地址没有配置为合法地址,解决办法:https://segmentfault.com/q/1010000010231945

技术分享图片

文字折行显示,这个没有捷径,只能自己处理,链接:https://blog.csdn.net/weixin_41941325/article/details/80274969?utm_source=copy

绘制框在小米手机显示不全,可能是我把canvas放大了两倍的原因,ctx.strokeRect()在小米手机一直绘制不了完整的矩形,只能用图片替代了

生成图片不清晰,canvas和图片都放大两倍绘制,同时会出现另一个问题,canvas要隐藏掉(找了很多种办法解决不了如下),显示图片

隐藏canvas,不能使用canvas的自带属性,会绘制不出图,在网上搜的别的方法:

技术分享图片

保存图片授权,第一次拒绝授权后,再次点击需要提示打开授权

saveImg() {
wepy.authorize({
scope: ‘scope.writePhotosAlbum‘,
success: res => {
wx.saveImageToPhotosAlbum({
filePath: this.shareImgPath,
success() {
showToast(‘保存成功‘);
},
fail() {
showToast(‘保存失败,请重试‘);
}
});
},
fail: () => {
showToast(‘保存失败,请重试‘);
setTimeout(() => {
wepy.showModal({
title: ‘提示‘,
content: ‘您取消了保存图片授权,是否重新授权‘,
showCancel: true,
cancelText: ‘取消‘,
cancelColor: ‘#000000‘,
confirmText: ‘确定‘,
confirmColor: ‘#3CC51F‘,
success: res => {
if (res.confirm) {
wepy.openSetting({ success: res => {} });
}
}
});
}, 500);
}
});
}

  

 


推荐阅读
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • 项目需要实现弹幕,网上参考了各种方法,最后觉得transform+transition实现的效果在移动设备上性能最好,在iphone6和红米4上测试,看不到 ... [详细]
  • layui表格分页不生效怎么办
    web前端|Layui教程layuiweb前端-Layui教程小程序实例源码,ubuntuip切换,tomcat默认端改为80,爬虫完整源码,微信小程序php接口,seo专业培训班 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 校园表白墙微信小程序,校园小情书、告白墙、论坛,大学表白墙搭建教程
    小程序的名字必须和你微信注册的名称一模一样在后台注册好小程序。mp.wx-union.cn后台域名https。mp.wx-union.cn ... [详细]
  • 问题描述:域名已经备案,我全部都有,也在后台配置了,但是手机预览,还是请求失败,PC端是可以请求 ... [详细]
author-avatar
rain
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有