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%
腾讯混元模型广场里都是混元模型的垂直小模型,如何api调用?
为啥所有的照片分辨率提升工具都会修改照片上的图案细节?
js如何在浏览器中将webm视频的声音分离为单独音频?
微信小程序如何播放第三方域名url的mp4视频?
ai多模态大模型能实时识别视频中的手语为文字吗?
如何远程调试别人的chrome浏览器获取调试信息?
为啥js打开新网页window.open设置窗口宽高无效?
浏览器中js的navigator.mediaDevices.getDisplayMedia屏幕录像无法录制SpeechSynthesisUtterance产生的说话声音?
js中mediaRecorder如何录制window.speechSynthesis声音音频并下载?
python如何直接获取抖音短视频的音频文件url?