Painter 的优势

功能全,支持文本、图片、矩形、qrcode 类型的 view 绘制

布局全,支持多种布局方式,如 align(对齐方式)、rotate(旋转)

支持圆角,其中图片,矩形,和整个画布支持 borderRadius 来设置圆角

支持边框,同时支持 solid、dashed、dotted 三种类型

支持渐变色,包括线性渐变与径向渐变。

支持 box-shadow 和 text-shadow,统一使用 shadow 表示。

支持文字背景、获取宽度、主动换行

支持图片 mode

支持元素的相对定位方法

杠杠的性能优化,我们对网络素材图片加载实现了一套 LRU 存储机制,不用重复下载素材图片。

杠杠的容错,因为某些特殊情况会导致 Canvas 绘图不完整。我们对此加入了对结果图片进行检测机制,如果绘图出错会进行重绘。

生成的图片支持分辨率调节

支持使用拖动等操作动态编辑绘制内容

快速开始

1. 引入代码

2. 引入组件

{

"path": "pages/result/index",

"style": {

"navigationBarTitleText": "结果",

"mp-weixin": {

"usingComponents": {

"painter": "../../wxcomponents/Kujiale-Mobile-painter/painter"

}

}

}

}

复制代码

3. 使用组件

@imgOK="onImgOk"

@imgErr="onImgErr"

customStyle="position: absolute; left:-9999rpx; top:0rpx;"

widthPixels="750"

:palette="template"

/>

复制代码

4. 请求接口绘图

getDraw() {

this.template = {

background: "#fff",

width: "420rpx",

height: "336rpx", //分享图片高度要保持 5:4

views: [

{

type: "image",

url: this.$api.PUBLIC_IMG_PATH + "/l75dsv-bg.png",

css: {

top: "0px",

left: "0px",

width: "420rpx",

height: "336rpx",

},

},

{

type: "text",

text: this.dietDesc + " " + this.shareCreatTime,

css: {

top: "24rpx",

left: "210rpx",

align: "center",

fontSize: "24rpx",

color: "#000",

},

},

{

type: "image",

url: this.shareValueBg,

css: {

top: "69rpx",

left: "210rpx",

width: "190rpx",

height: "190rpx",

align: "center",

borderRadius: "95rpx",

},

},

{

type: "text",

text: this.params.bloodSugar + "",

css: {

top: "116rpx",

left: "210rpx",

align: "center",

fontSize: "60rpx",

color: "#fff",

},

},

{

type: "text",

text: "mmol/L",

css: {

top: "178rpx",

left: "210rpx",

align: "center",

fontSize: "28rpx",

color: "#fff",

},

},

{

type: "image",

url: this.$store.getters.storage.userInfo.avatarUrl,

css: {

top: "260rpx",

left: "24rpx",

width: "60rpx",

height: "60rpx",

},

},

{

type: "text",

text: this.$store.getters.storage.userInfo.nickName,

css: {

top: "276rpx",

left: "96rpx",

fontSize: "22rpx",

color: "#000",

},

},

{

type: "rect",

css: {

top: "271rpx",

right: "24rpx",

width: "88rpx",

height: "40rpx",

color: this.shareBgColor,

borderRadius: "32rpx",

},

},

{

type: "text",

text: this.bloodSugerDesc,

css: {

top: "277rpx",

right: "44rpx",

fontSize: "24rpx",

color: this.shareTextColor,

},

},

],

};

},

// 生成成功

onImgOk(e) {

//其中 e.detail.path 为生成的图片路径

wx.hideLoading();

var filePath = e.detail.path;

UploadImage(

filePath,

(res) => {

const data = JSON.parse(res.data);

if (data.code == 100) {

this.shareImage = data.data;

this.showShareCard = true;

}

},

(error) => {}

);

},

computed: {

shareCardTitle: function () {

return bloodSugarObj[this.params.bloodSugarIndex].shareCardTitle;

},

}

复制代码

图库类小程序服务器配置,小程序生成图片库相关推荐

  1. 开发小程序需要服务器吗?小程序服务器配置要求

    开发小程序需要服务器吗?小程序服务器配置要求 1.稳定性 2.速度快 3.高安全性 开发小程序需要服务器吗?当然需要!开发一个运行于微信的小程序需要准备程序源码.服务器.备案域名和账号等,服务器用于存 ...

  2. 餐饮小程序服务器配置,餐饮小程序应该怎么做?

    原标题:餐饮小程序应该怎么做? 餐饮行业目前确实非常需要利用小程序来解决目前的利润不高的困境,我们在之前就分享过关于餐饮行业如何利用小程序降低成本以及自建流量池的思路: 在前几年一直流行"互 ...

  3. 脱离微信,在硬件设备运行小程序?小程序硬件框架大揭秘!

    受访者 | 微信小程序硬件框架团队 采访者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 在 2017 年的微信公开课 PRO 上,张小龙谈到微信小程序的设计初衷:"我认为所有的 ...

  4. 微信小程序 生成小程序码 + Java后台

    微信小程序 生成小程序码 首先看下效果图: 微信小程序已经上线很久了.现在才开始把代码拷进来 因为真的很忙 ---- 先看代码吧.首先是小程序端的内容: 怕麻烦 全部拷进去吧 这块的需求就是完成分享小 ...

  5. 北京 | 微信小程序及小游戏开发者线下交流会

    七月中旬,Google 推出的首款小程序<猜画小歌>引发了朋友圈的画图大战,也让更多人的目光重新回到了微信小程序上.微信用户量庞大,这使得小程序自上线后便受到众多开发者的关注,其种类更是覆 ...

  6. 【小程序】小程序托管平台的功能展望与想法

    ⭐️ 本文首发自 前端修罗场,一个专注 Web 技术.答疑解惑.面试辅导.职业发展的社区. 本文继续解读小程序平台白皮书.继前面的文章中我们解析了小程序平台的架构,本次我们将解读在基于 Web 技术开 ...

  7. 玩玩小程序:使用 WebApi 交互打造原生的微信小程序 - 图灵小书架

    使用 WebApi 交互打造原生的微信小程序 - 图灵小书架 目录 介绍 源码地址 扫一扫体验 代码分析 其它相关信息(互联网搜集) 介绍 定时抓取图灵社区官网的首页.最热.推荐和最新等栏目的相关图书 ...

  8. 【小程序】小程序起步、WXML模板语法和WXSS模板样式

    文章目录 一.小程序-起步 1.1 小程序和普通网页开发的不同 1.2 项目的基本组成部分 1.3 小程序的宿主环境 1.3.1 通信模型 1.3.2 运行机制 1.3.3 常用的视图容器类组件vie ...

  9. 微信小程序开发.小程序入门(上)

    1.小程序简介 微信小程序,小程序的一种,英文名Wechat Mini Program,   是一种不需要下载安装即可使用的应用,   它实现了应用"触手可及"的梦想,用户扫一扫或 ...

最新文章

  1. ubuntu安装thrift
  2. 无法解析的外部符号 class boost::system::error_category const __cdecl boost::system::system_category(void)
  3. android 结束if循环_(第五讲)if 分支语句和 while 循环
  4. 剑指offer 面试题59 - II. 队列的最大值
  5. Q4_一个事物领导另一个
  6. python def函数调用内容_基本的python,def函数和文本菜单的调用
  7. history指令显示日期时间
  8. DSP28335学习记录(一)
  9. OpenCV调用工业相机
  10. 木瓜移动:到底什么样的跨境SaaS服务商才是卖家更好的选择?
  11. 【微信小游戏开发 一】项目调研
  12. 苹果 iOS 15.5更新了哪些功能 苹果 iOS 15.5值得更新吗
  13. 让物联网为“中国制造”插上腾飞的翅膀
  14. MySQL——MySQL高可用之 MMM多主复制管理器
  15. 关于insight数据库价格与价值的双重选择
  16. Java零散知识点记录——类的方法
  17. pythonreshape函数三个参数_Python Numpy中reshape函数参数-1的含义
  18. 港科夜闻|香港科大商学院5位教授跻身世界顶尖科学家之列
  19. 【Qt界面个性化】大杀器——qss
  20. iOS 优化资源文件

热门文章

  1. 如何免费将PDF转成JPG
  2. RCWL-0516微波雷达模块检测人体移动(发光二极管)
  3. socket.io-client源码分析——建立socket连接
  4. 浅谈蓝牙的多时隙分组
  5. everything搜索指定路径下的多个文件
  6. http状态码查询表(转载)
  7. QLineEdit限制数字输入范围
  8. 【JAVA】项目开发团队分配管理软件
  9. linux踢人命令 pkill踢人用法
  10. 组合电路、触发器、时序电路、寄存器