vue将页面生成图片 vue生成海报

ops/2024/10/18 7:25:37/

下载好依赖后,我们在需要使用的页面引入前提条件:此功能是在背景图上添加内容

(这是关于Vue生成图片的方式,目前只更新方法一,还有方法二直接用canvas把文字绘制到图片上目前没空整理,还有后端生成的方式这个比较考验服务器压力)

方式一 、先将图片文字走准备好,在分享或者下载的时候用canvan绘制成一张图片

1.我们先在vue项目中输入以下命令安装依赖

npm install --save html2canvas //上面不行可以用下面这个安装
pnpm install html2canvas

2.下载好依赖后,我们在需要使用的页面引入

import html2canvas from 'html2canvas';

3.在需要生成图片的盒子添加ref 或者id

<template><view id="test" ref="canvasImg"><uv-image width="750rpx" src="图片地址"  mode="widthFix"></uv-image><view class="content">文字信息</view></view><uv-buttontype="primary"text="保存"customStyle="margin-top: 10px"@click="submit"></uv-button>
</template>

4.创建方法 在保存时调用该方法 

<script setup>
async function convertToImage() {try {const element = document.getElementById('test');const canvas = await html2canvas(element).then((canvas)=>{const link = document.createElement('a');link.href = canvas.toDataURL('image/png');link.download = 'image.png';link.click();});} catch (e) {throw new Error(e);}
</script>


http://www.ppmy.cn/ops/126417.html

相关文章

UE5运行时动态加载场景角色动画任意搭配-相机及运镜(二)

通过《MMD模型及动作一键完美导入UE5》系列文章,我们可以把外部场景、角色、动画资产导入UE5,接下来我们将实现运行时动态加载这些资产,并任意组合搭配。 1、运行时播放相机动画 1、创建1个BlueprintActor,通过这个蓝图动态创建1个LevelSequence,并Play 2、将这个Bluep…

C语言 | Leetcode C语言题解之第491题非递减子序列

题目&#xff1a; 题解&#xff1a; int** ans; int ansSize; int* temp; int tempSize;void dfs(int cur, int last, int* nums, int numsSize, int** returnColumnSizes) {if (cur numsSize) {if (tempSize > 2) {ans[ansSize] malloc(sizeof(int) * tempSize);memcpy(…

【数据结构与算法】链表(下)

记录自己所学&#xff0c;无详细讲解 带头循环双链表实现 1.项目目录文件 2.头文件 List.h #include <stdlib.h> #include <assert.h> #include <stdio.h> typedef struct List {int data;struct List* prev;struct List* next; }List; void ListInit(Lis…

自动驾驶系统研发系列—智能驾驶新技能:MEB低速紧急制动系统带来更多驾驶安全保障

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中一起航行,共同成长,探索技术的无限可能。 🚀 探索专栏:学…

mysql数据同步ES方案---Canal

引言 之前公司开发社交APP的时候 在开发和初上线阶段&#xff0c;我们一直采用的是 MySQL 来存储用户的各种数据&#xff0c;满足基本的查询需求。当时系统业务量小&#xff0c;数据规模有限&#xff0c;因此 MySQL 能很好地支持查询操作&#xff0c;响应速度快&#xff0c;系…

【VUE】Vue中的内置组件

Vue2中的内置组件&#xff1a; <component>&#xff1a;动态组件&#xff0c;可以根据传递的 is 属性值渲染不同的组件。<transition>&#xff1a;过渡动画组件&#xff0c;可以在元素插入、更新或移除时添加动画效果。<transition-group>&#xff1a;过渡动…

游戏盾真的能无视攻击吗?

在当今社会&#xff0c;网络游戏已成为人们娱乐休闲的重要组成部分。随着游戏行业的快速扩展&#xff0c;网络安全挑战也随之加剧。DDoS攻击、CC攻击等恶意手段频繁出现&#xff0c;给游戏运营商及玩家带来了重重困扰。幸运的是&#xff0c;游戏盾这一专为游戏领域设计的网络安…

如何将LiDAR坐标系下的3D点投影到相机2D图像上

将激光雷达点云投影到相机图像上做数据层的前融合&#xff0c;或者把激光雷达坐标系下标注的物体点云的3d bbox投影到相机图像上画出来&#xff0c;都需要做点云3D点坐标到图像像素坐标的转换计算&#xff0c;也就是LiDAR 3D坐标转像素坐标。 看了网上一些文章都存在有错误或者…