当前位置: 首页 > ai >正文

Vue3+ts复制图片到剪贴板

直接看代码 :

我的图片地扯(imageUrl)为 https://placehold.co/150x200

// 新增: 复制图片功能
const copyImageToClipboard = async () => {const imageUrl = productData.value.imageUrl;if (!imageUrl) {ElMessage.warning('没有可用的图片链接');return;}try {const response = await fetch(imageUrl);if (!response.ok) throw new Error(`HTTP错误! 状态: ${response.status}`);const blob = await response.blob();const contentType = blob.type;// 如果是 SVG,先转换成 PNGif (contentType.includes('svg')) {await convertSvgToPngAndCopy(imageUrl);return;}// 否则直接复制const item = new ClipboardItem({ [contentType]: blob });await navigator.clipboard.write([item]);ElMessage.success('图片已复制到剪贴板');} catch (error) {console.error('复制图片失败:', error);ElMessage.error('复制失败: ' + error.message);}
};// SVG → PNG 转换
const convertSvgToPngAndCopy = async (svgUrl) => {const img = new Image();img.crossOrigin = 'Anonymous'; // 允许跨域img.src = svgUrl;await new Promise((resolve) => (img.onload = resolve));const canvas = document.createElement('canvas');canvas.width = img.width;canvas.height = img.height;const ctx = canvas.getContext('2d');ctx.drawImage(img, 0, 0);// 转换为 PNG Blobcanvas.toBlob(async (pngBlob) => {const item = new ClipboardItem({ 'image/png': pngBlob });await navigator.clipboard.write([item]);ElMessage.success('图片已复制到剪贴板');}, 'image/png');
};

http://www.xdnf.cn/news/4821.html

相关文章:

  • git相关
  • TB6600HG-富利威
  • k8s之statefulset
  • 养生:塑造健康生活的良方
  • 信赖域策略优化TRPO算法详解:python从零实现
  • Unity3D实现Render Streaming推送视频流的解决方案
  • Python爬虫(22)Python爬虫进阶:Scrapy框架动态页面爬取与高效数据管道设计
  • matlab转python
  • learning ray之ray强化学习/超参调优和数据处理
  • 出一期Source Insigned的使用教程
  • 湖南省密码协会成立,麒麟信安担任副会长单位共话密码创新应用之道
  • python里面的class,类,方法,函数,def
  • 深入剖析 I/O 复用之 select 机制
  • debian12 安装docker
  • ImportError: cannot import name ‘Optional‘ from ‘pydantic‘
  • C++错误: multiple definition of `Q‘
  • 超详细讲解注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制
  • CCF编程能力等级认证 一级 第一次课
  • 【PhysUnits】3 量纲接口实现解析(dimensional.rs)
  • 如何处理oracle 12c DG归档日志缺失(gap)导致备库同步中断问题
  • 创建型模式:抽象工厂(Abstract Factory)模式
  • Matlab 数控车床进给系统的建模与仿真
  • ubuntu24.04安装cuda
  • 微程序控制器的详细工作过程
  • 基于精准光域控制的光触发RFID标签
  • 【万字长文】深入浅出 LlamaIndex 和 LangChain:从RAG到智能体,轻松驾驭LLM应用开发
  • python调用国税乐企直连接口开数电票之API调用工具类
  • AI领域的MCP(Model-Centric Paradigm)
  • 无线远传压力传感装置:城市管网的 “压力小卫士”
  • 【盟通杂谈】为什么现代工业需要工业协议?