vue3 下载图片(标签内容可转图)

这种方法可以用来捕获页面上的任意元素并将其转换为图片格式进行下载,适合于生成包含特定内容的图片(如海报、证书等)。

安装插件 npm install html2canvas

复制代码
<template>
  <div>
    <div ref="contentRef" style="padding: 20px; border: 1px solid #ccc;">
      <h1>Hello Vue 3</h1>
      <p>这是一段要下载为图片的内容。</p>
      <!-- 如果包含跨域图片 -->
      <img src="https://example.com/cross-origin-image.jpg" alt="Cross Origin Image">
    </div>
    <button @click="downloadAsImage">下载为图片</button>
  </div>
</template>

<script setup>
import { ref, nextTick } from 'vue';
import html2canvas from 'html2canvas';

const contentRef = ref(null);

const downloadAsImage = async () => {
  await nextTick(); // 确保 DOM 更新完成

  const element = contentRef.value;
  if (!element) {
    console.error('元素未找到');
    return;
  }

  try {
    const canvas = await html2canvas(element, {
      useCORS: true // 启用跨域支持
    });

    const link = document.createElement('a');
    link.href = canvas.toDataURL('image/png');
    link.download = 'content.png';
    link.click();
  } catch (error) {
    console.error('截图失败:', error);
  }
};
</script>
相关推荐
计算机魔术师几秒前
黄仁勋台上接特朗普电话开免提,全场听到一句话:AI 不会减速
前端
yivifu23 分钟前
HTML元素的textContent和innerText两个属性的差别
前端·html
天若有情67335 分钟前
开源轻量双语工具|一键批量查询 NPM 包历史下载量,支持按作者批量统计
javascript·npm·github pages·开源工具·netlify·前端开源·npm克隆量
咸鱼老弟1 小时前
Speculative Decoding(投机采样):大模型"先猜后验",生成速度翻倍
前端·算法·ai编程
a1117761 小时前
网页版「MATLAB」开源
前端·开源
JianZhen✓1 小时前
解决SPA发版旧版本残留+动态路由打包失效的完整方案(附落地代码)
前端·状态模式
计算机魔术师1 小时前
Dario Amodei 发文呼吁放缓前沿 AI 开发后各方表态汇总
前端
anyup1 小时前
仍然是简单一句话,uView Pro Starter 一键清理 Skill 发布
前端·人工智能·uni-app
福兮说2 小时前
纯前端把图片压缩到指定体积:canvas.toBlob 配合二分查找
前端·javascript·canvas·图片处理
是立不是利2 小时前
CSS 入门与进阶:从选择器到响应式布局的完整指南
前端·css