微信小程序中使用wxml-to-canvas

这篇具有很好参考价值的文章主要介绍了微信小程序中使用wxml-to-canvas。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 下载:

npm install wxml-to-canvas --save

2. json文件导入

"usingComponents": {
    "wxml-to-canvas": "wxml-to-canvas/index"
},

3、使用组件

 index.wxml

<wxml-to-canvas width="350" height="550" class="widget"></wxml-to-canvas>
<button bindtap="extraImage">保存图片</button>

index.js

const { wxmls, style } = require('./demo.js')
let widget = null
Page({
 data: {
    
  },
 onLoad(options) {
    wx.showLoading({
      title: '图片生成中。。',
    })
     this.widget = this.selectComponent('.widget')
    // 必须要用定时器延迟,不然会报错
    setTimeout(()=>{
      this.renderToCanvas()
    },150)   
 },
  //生成海报
  renderToCanvas() {
    let obj = {
        avatar: '头像.png',
        topImg: '头部.png',
        contentBg: '内容背景.png'
    }
    // 传入要填入的动态数据
    let wxml = wxmls(obj)
    const p1 = this.widget.renderToCanvas({ wxml, style })
    p1.then((res) => {
       wx.hideLoading()
    })
  },
//保存海报
  extraImage() {
    const p2 = this.widget.canvasToTempFilePath()
    p2.then(res => {
      console.log(res)
      wx.saveImageToPhotosAlbum({
        filePath: res.tempFilePath,
        success(res) {
          console.log(res)
        }
      })
    }).catch(err=>{
      console.log(err)
    })
  }
})

demo.js中的配置文章来源地址https://www.toymoban.com/news/detail-534011.html

const wxmls = (info) => {
  return `
  <view class="container">
      <image class="bg" src="BG.jpg">                            
      </image>
      <image class="topImg" src="${info.topImg}"></image>
      <view class="content">
        <image class="contentBg" src="${info.contentBg}"></image>
        <view class="portrait">
          <image class="avatar" src="${info.avatar}"></image>
          <image class="frame" src="frame.png"></image>
        </view>
      </view>
    </view>
  `
}

const style = {
  container: {
    position: 'relative',
    width: 350,
    height: 550,
    display: 'flex',
    flexDirection: 'column',
    alignItems: 'center',
  },
  bg: {
    position: 'absolute',
    left: 0,
    top: 0,
    width: 350,
    height: 550,
  },
  topImg: {
    position: 'relative',
    width: 270,
    height: 120,
    marginTop: 40
  },

  content: {
    position: 'relative',
    width: 270,
    height: 270,
    display: 'flex',
    flexDirection: 'column',
    alignItems: 'center',
  },
  contentBg: {
    position: 'absolute',
    top: 0,
    left: 0,
    width: 270,
    height: 270
  },
  portrait: {
    position: 'relative',
    width: 100,
    height: 100,
    marginTop: -50,
    borderRadius: '50',
    overflow: 'hidden',
  },

  frame: {
    width: 100,
    height: 100,
    position: 'absolute',
    left: 0,
    top: 0,
  },

  avatar: {
    width: 100,
    height: 100,
    borderRadius: 50,
  }
}

module.exports = {
  wxmls,
  style
}

到了这里,关于微信小程序中使用wxml-to-canvas的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序:如何在{{}}中使用函数?WXML+WXS

    在原生小程序的项目中或有这种需求,就是在wxml页面中调用方法 但是微信原生小程序 无法直接使用像vue里面的计算属性,监听啦啥的这种,也不能调用js中的方法。  既然{{}}中无法调用js中的函数,那该怎么办呢? 微信提出了一种新的概念,WXS(WeiXin Script) ,小程序的一套脚

    2024年02月16日
    浏览(36)
  • 微信小程序在 wxml 文件中使用 Array.includes 方法

    微信小程序中不能直接在wxml使用includes,否则 不起作用 需要通过wxs使用: 1、在wxs下创建一个includes.wxs  2、在wxml中使用 先引入 后使用

    2024年02月11日
    浏览(36)
  • 使用wxml2canvas将微信小程序页面转为图片

    最近有个微信小程序项目,需要将页面转为图片。微信小程序提供的Api是 wx.canvasToTempFilePath ,这个方法是将画布指定区域的内容导出生成指定大小的图片,但是我们是将页面导出图片,所以可以使用wxml2canvas解决 1、安装wxml2canvas npm init 是npm初始化,这个时候根据编译器终端

    2023年04月16日
    浏览(28)
  • towxml的使用,在微信小程序中快速将markdown格式渲染为wxml文本

    towxml3.0 支持以下功能: ● echarts图表,默认禁用,需自行构建以开启此功能 ● LaTeX数学公式,默认禁用,需搭建解析服务并自行构建以开启此功能 ● yuml图表,默认禁用,需要搭建解析服务并自行构建以开启此功能 ● highlight代码高亮,默认开启(默认仅开启bash、javascript、

    2024年04月26日
    浏览(23)
  • 微信小程序wxml2canvas的使用以及遇到的一些问题

    最近入坑了的一个laji(拼音)项目,各种天花乱坠、异想天开的功能,给我整头大了(菜是原罪)。具体功能呢就是需要将页面元素转为图片,然后将图片和音乐制成视频(搞不了根本搞不了,丢给后端兄弟了),当然了,不能一口吃成一个大胖子,更何况嘴都还没张开,然

    2024年02月14日
    浏览(25)
  • 微信小程序编译.wxml文件编译错误

    [ WXML 文件编译错误] ./pages/mine/wallet.wxml Bad value with message 1 | view 刚开始找了半天都没发现错误,后面才发现原来是我写页面的时候,插值语法忘记换成后端传过来的数据了, 无语子- - 。 把插值语法中的中文改掉就不会报错了,不过不同原因都会报这个错误,错误原因大部分

    2024年02月15日
    浏览(39)
  • 微信小程序 | 小程序WXSS-WXML-WXS

    🖥️ 微信小程序 专栏:小程序WXSS-WXML-WXS 🧑‍💼 个人简介:一个不甘平庸的平凡人🍬 ✨ 个人主页:CoderHing的个人主页 🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️ 👉 你的一键三连是我更新的最大动力❤️ 目录 一、WXSS编写程序样式 小程序的样式写法 WXSS支持的

    2024年01月23日
    浏览(52)
  • 微信小程序逆向 小程序包使用unveilr工具解包后在开发者工具报[ WXML 文件编译错误] xxx.wxs Unexpected token `}`

    微信小程序逆向 使用解包工具后后在开发者工具报[ WXML 文件编译错误] xxx.wxs Unexpected token } 页面上则报编译.wxml文件错误… 解决方案: 很简单,因为是解包出来的,一般代码都是没有错的,我们只需要微信微信开发者工具中的资源管理器或者其他地方,找到这个文件,然后

    2024年02月08日
    浏览(37)
  • 微信小程序中WXML模版语法-数据绑定方法介绍

    1.数据绑定的基本原则 1在data中定义数据 2在WXML中使用数据 2.在data中定义页面的数据 在页面对应的.js文件中,把数据定义到data对象中即可: 3.Mustache语法的格式 把data中的数据绑定到页面中渲染,使用Mustache语法(双大括号)将变量包起来即可。语法格式为: 4.Mustache语法的应

    2024年02月12日
    浏览(35)
  • 释放创造力!探索微信小程序中的wxml-to-canvas绘图组件

    wxml-to-canvas 是一个用于在微信小程序中将WXML(微信小程序界面语言)转换为Canvas绘图的组件。 官方文档 下面是关于 wxml-to-canvas 的优点、缺点和应用场景的概述: 绘制灵活: wxml-to-canvas 组件可以将WXML中的各种元素、样式和布局转换为Canvas绘图,提供了更多绘制的自由度。

    2024年02月07日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包