uniapp如何生成自定义文字和图片的海报?
网友回复
效果:

完整uniapp代码,兼容app、h5、小程序
<template>
<view>
<!-- 生成海报的点击事件 -->
<view @click="generatePoster">点击分享</view>
<!-- 生成海报的canvas -->
<view class="my-canvas-box" @touchmove.stop.prevent v-show="show" @click="show = false">
<canvas class="my-canvas" canvas-id="myCanvas" @longpress.stop="saveSharePic"></canvas>
<view class="canvas-tip">长按可保存海报</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
show: false,
}
},
methods: {
// 生成海报
generatePoster() {
// 这里是创建 canvas 绘图上下文
let context = uni.createCanvasContext('myCanvas');
// 这里可以根据自己的需求显示加载动画
uni.showToast({
title: '正在生成海报,请稍后',
icon: 'none',
duration: 3000
});
// 小程序码图片,下面可以放一个请求,来保存小程序码。然后赋值到qrImg这个变量上面
let qrImg = 'http://repo.bfw.wiki/bfwrepo/image/5f9e27c437f2a.png';
// 给整个canvas填充白色背景(这个如果不加上的话,在APP端生成的海报没有白色背景)
context.setFillStyle('#ffffff');
context.fillRect(0, 0, 500, 900);
context.draw();
// 绘制用户昵称
context.setFontSize(14);
context.setFillStyle('#000000');
// 这里根据自己的项目填写用户昵称的字段
context.fillText('用户的昵称', 100, 48);
context.setFontSize(12);
context.setFillStyle('#999999');
context.fillText('的分享', 100, 68);
// 绘制价格
context.setFontSize(18);
context.setFillStyle('red');
context.fillText(`¥199`, 20, 366);
// 绘制商品名称,这里是调用一个方法,按字符串长度进行分割换行。【可以做一个优化】
this.drawText("商品名称", 20, 379, context);
// 绘制头像
uni.d...点击查看剩余70%
如何让ai帮我自动在小红书或抖音上自动根据需求截流与潜在客户聊天拉客?
如果用go编写一个在virtualbox中启动的简单操作系统?
go如何搭建一个零信任网络?
如何用python实现一个公网代理访问软件?
如何用go实现一个公网代理访问软件?
如何用python实现一个内网穿透打洞程序,实现内网的80端口暴露到公网上可以访问?
如何用go实现一个内网穿透打洞程序,实现内网的80端口暴露到公网上可以访问?
何为Shadowsocks 代理?
python如何实现类似php的opendir目录相互隔离的fastcgi多租户虚拟空间?
nodejs如何实现类似php的opendir目录相互隔离的fastcgi多租户虚拟空间?


