vue将页面生成图片 vue生成海报
Hello,大家好,我是小编鹏仔,近几年开发项目中,经常用到将网页生成海报图片功能,每次使用都要去查找复制一下的,比较麻烦还费时间,还是自己整理到自己的博客方便,那么本次鹏仔就给大家整理一下vue使用html2canvas插件将网页生成图片吧!
如上图所示功能是开发了一个电子签名触屏版,右上角框框是摄像头(因电脑没配置摄像头,所以效果图中拍照区显示为空),左侧为签名区域,签名拍照成功后点击保存,会将签名区和拍照区截图为整张图保存下来。
第一步,我们先在vue项目中输入以下命令安装依赖
npm install --save html2canvas
第二步,下载好依赖后,我们在需要使用的页面引入
import html2canvas from 'html2canvas';
第三步,在需要生成图片的盒子添加ref
<div class="layer" ref="canvasImg">需要生成图片的区域</div>
第四步,在 methods 中执行生成方式
async createImage() {
try {
const canvas = await html2canvas(this.$refs.canvasImg) // 在这里,将需要转换成图片的部分作为参数传入html2canvas
const image = canvas.toDataURL() // 将生成的canvas转换为DataURL格式
this.imgUrl = image;
console.log(image) // 可以将image自行存储
} catch (e) {
throw new Error(e)
}
}
鹏仔建议您将执行方式写在 $nextTick 中执行
this.$nextTick(() => {
})
【鹏仔扩展】:您也可以使用相同插件 dom-to-image 来实现也是可以的,基本使用方法差不多。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了