# 海报生成 **Repository Path**: devmodu/poster-generation ## Basic Information - **Project Name**: 海报生成 - **Description**: 利用html2canvas生成base64海报,海报排版定义灵活,稍微会点前端知识的都能轻易的修改和自定义宣传海报模版。这边只是提供示例模版和思路,如需生成自定义海报模版需要二次开发 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2023-03-16 - **Last Updated**: 2023-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 以下为小程序例子部分代码 ## 先上效果图 []() []() []() []() []() []() ## 第一步 ``` 把本实例放到服务器的能访问的目录下,只要能被访问到就行 ``` ## 第二步 ``` ``` ``` // 页面主要代码 export default { data() { return { src: `https://www.xxxx.com/poster-generation/index.html` // 代码放到服务器上就行 } }, methods: { // base64 转成本地临时文件 // base64 去除逗号前面的图片格式 base64ToImageFile(base64, name, callback) { callback = callback || function() {} base64 = base64.replace(/^data:image\/\w+;base64,/, "") if (typeof name == 'undefined') { name = 'img_' + Math.floor(Math.random() * 10000) } // 这里只以小程序为例,其它平台可以使用 https://ext.dcloud.net.cn/plugin?id=123#detail 这个插件 let filePath = `${wx.env.USER_DATA_PATH}/${name}.png` uni.getFileSystemManager().writeFile({ filePath: filePath , // 创建一个临时文件名 data: base64, // 写入的文本或二进制数据 encoding: 'base64', // 写入当前文件的字符编码 success: res => { callback(filePath) }, fail: err => { console.log(err) } }) } }, // 接收截图完成回调事件 message(data) { // 此时 data.detail.data[0].action 就已经是生成好的海报 base64 编码 this.base64ToImageFile(data.detail.data[0].action, 'poster', res => { uni.saveImageToPhotosAlbum({ filePath: res, success: (res) => { console.log("保存图片到相册成功") console.log(res) }, fail: (err) => { console.log(err) } }) }) } } ``` ## 说明 ``` 1、首先这里我只提供实现的思路 2、海报的生成由 html2canvas 实现,理论上是兼容所有的平台(目前只测试了小程序的) 3、需要二次开发 4、欢迎留言交流 ``` ## 优势 ``` 会点前端基础的都能添加和修改海报模版 海报模版定义自由 ``` ## 如何 base64 转成本地临时文件 [点击查看](https://ext.dcloud.net.cn/plugin?id=123#detail) ## 微信扫码联系我 []()