前端时间公司的业务里,需要自动将背景图和用户输入的标题生成封面并上传至OSS的需求,感觉以后会用到,因此记录一下。

一.将页面生成图片

使用了Painter 2.0库插件(Painter)。

  1. step-01:下载demo,将printer组件放入自己的小程序component下。
  2. step-02:在需要生成图片的页面文件夹下增加canvas.js文件
// canvas.js
module.exports = data => {return ({"width": "620px","height": "980px","background": "#ffffff","views": [{"type": "text","text": data.name,"css": {"color": "#191846","background": "rgba(0,0,0,0)","width": "536px","top": "486px","left": "41px","rotate": "0","borderRadius": "","borderWidth": "","borderColor": "#000000","shadow": "","fontSize": "30px","lineHeight": "43px","fontWeight": "normal","textStyle": "fill","textDecoration": "none","fontFamily": "","textAlign": "left"}},]});
}
  1. step-03:在需要生成图片的页面js中引入canvas。
import canvas from './canvas.js';painterBtn() {let name="我是传递的参数";this.setData({// wxml: canvas(name)  // 在此传递参数wxml:{width: "654rpx",height: "1000rpx",//背景图片资源background: "/assets/2.jpg",//根据自己所需的样式在view中配置。views: [{type: "text",text: "标题标题标题",css: {fontFamily: "Bitstream Vera Serif Bold",width:"300rpx",textAlign:"center",fontWeight:800,top: "400rpx",fontSize: "56rpx",},}]}})wx.showLoading({title: '正在生成中...',})},onImgOK(e) {console.log(e);//e.detail.path为图片路径this.setData({src: e.detail.path})wx.hideLoading()wx.getFileSystemManager().readFile({filePath: e.detail.path, //选择图片返回的相对路径encoding: 'base64', //编码格式success: result => { //成功的回调let file = 'data:image/png;base64,' + result.data;//业务代码}})}
  1. 页面wxml代码
 <!-- 这个是生成的海报图片预览 --><image src="{{src}}" style="height:980rpx" mode="aspectFit" class="canvas-img"></image><!-- 这个是painter组件使用 --><painter palette="{{wxml}}" style="position: absolute; top: -9999rpx;"  bind:imgOK="onImgOK" /><!-- 生成海报按钮 --><button bindtap="painterBtn">生成海报</button>
  1. 至此图片就生成啦。可以拿到图片的路径和base64。

二.上传到OSS服务器

由于我们公司的OSS后端有接口可以获取到上传至OSS所需的参数。我就只贴出调用微信上传文件至OSS的代码

wx.uploadFile({url: “你的OSS服务地址”,filePath: e.detail.path,name: 'file',header: {"Content-Type": "multipart/form-data"},formData: {name:e.detail.path,key: key,policy: policyy,OSSAccessKeyId: accessid,signature: signature}, //调用成功的回调success(r) {}
})

ok!

小程序将页面生成图片,并上传至阿里OSS相关推荐

  1. Java生成微信小程序二维码、上传至阿里云OSS

    依赖 <!-- 阿里云oss依赖 --><dependency><groupId>com.aliyun.oss</groupId><artifac ...

  2. 小程序录音上传服务器,微信小程序录音实现功能并上传(使用node解析接收)

    微信小程序录音实现功能并上传(使用node解析接收) 发布时间:2020-09-04 11:59:06 来源:脚本之家 阅读:97 作者:weixin_43188227 背景 我在开发小程序的时候,有 ...

  3. uni-app——小程序实现本地图片的上传以及身份证的智能识别

    文章目录 前言 一.示例图 二.实现过程 1.完成提交图片的api地址 2.获取本地图片 3.将本地图片上传至开发者服务器 三.具体实现代码 四.身份证的智能识别 总结 前言 上传本地图片的功能很常见 ...

  4. taro开发微信小程序-添加开发者预览,上传测试版本(十四)

    taro开发微信小程序,上传测试版本,如果需要访问网络需要打开调试模式,如果配置了https协议的服务,提示对应的服务器证书无效,那么必须正确配置ssl证书,可以在阿里云或者腾讯云申请. 添加开发者预 ...

  5. 微信小程序云开发如何实现上传视频 以及 图片

    微信小程序云开发如何实现上传视频 以及 图片 最基础的数据库增删改查,上传到云存储即可实现,附源码 wxml文件 <button bindtap="upload">上传 ...

  6. 微信小程序图片(单图多图上传显示)

    微信小程序上传图片组件自定义 最近在做微信小程序开发的时候,遇到了一个问题,就是图片上传于显示问题,微信自带的感觉用起来还是不方便,于是就萌生了自定义图片上传于显示组件 废话不多说直接上代码 首先创建 ...

  7. 微信小程序上传图片及文件(上传、下载、删除及预览)

    微信小程序上传附件 上传文件及图片 下载,预览.删除 自定义封装组件 哪儿用哪儿调用即可 wxml代码 <!-- <view>上传文件(我是子组件)</view> --& ...

  8. 关于微信小程序上传,在微信公众平台|小程序中找不到上传的代码

    2019/05/16 小程序小白入门 最开始的时候,我不知道该如何上传自己的代码.打开微信开发平台,找到"工具"选项,再点击"上传"就好了 ①找到"工 ...

  9. Udesk对接微信小程序实现商品浏览轨迹上传

    作者:张振琦 Udesk提供了小程序专用的行为轨迹SDK,可以用来收集客户的商品浏览轨迹,并在客服对话窗口中访问轨迹处可以查看. 在开发之前,需要先完成两个操作: 确认Udesk客服系统内绑定的小程序 ...

最新文章

  1. 徐科:做IC不外乎PPA,但需要成百上千的专家合作 投入数千万
  2. 嵌入式入门要知道的五个小窍门-心得
  3. Replation requires the actual server name ... Replication.Utilies
  4. Leetcode 144. 二叉树的前序遍历 解题思路及C++实现
  5. send函数 获得已发送数据长度_蓝牙BLE开发1--起因与回调函数
  6. CString,string,char数组的转换
  7. redis 学习(18)-- AOF
  8. 现代控制理论概念梳理(脑图)
  9. 电机转速模糊pid控制
  10. 项目实战之微信、微信公众号登陆和支付调起
  11. 申请高德地图开发者key
  12. pip 生成 requirement.txt 文件
  13. The request client is not a secure context and the resource is in more-private address ...
  14. B-样条曲线:重要性质
  15. 软件工程--团队答辩
  16. 强强联合 数睿数据与霍尼韦尔Tridium达成战略合作
  17. CAD中光栅图像参照设置透明和非透明打印成PDF的效果对比
  18. 如何安装Java JDK
  19. 干货!#黑客大会PPT资源#,快来领取吧!
  20. Flash CS4 过期了

热门文章

  1. 华为路由器命令大全(字典查询)
  2. Multisim仿真软件的学习使用
  3. 阿里P7Android社招面试的经历,最全Android知识总结
  4. 打字机打字,退格效果
  5. Latex之修改参考文献reference的字体大小
  6. Set集合存储元素不重复原理
  7. 对于C语言函数递归的简单理解(新手入门必看!!!)
  8. 4.3 ROS工作空间覆盖
  9. 大麦链接 大麦购票链接万能模版
  10. 绘制GIF图片闪烁问题!