当前位置:首页 > JavaScript

js 实现图片另存

2026-01-30 11:24:23JavaScript

使用 Canvas 实现图片另存为

通过 Canvas 将图片转换为数据 URL,再触发下载。适用于动态生成或需要处理的图片。

function saveImageFromCanvas(canvas, filename) {
  const link = document.createElement('a');
  link.download = filename || 'image.png';
  link.href = canvas.toDataURL('image/png');
  link.click();
}

直接下载远程图片

通过 fetch 获取图片 Blob 数据后创建下载链接。需注意跨域问题。

js 实现图片另存

async function saveRemoteImage(url, filename) {
  const response = await fetch(url);
  const blob = await response.blob();
  const blobUrl = URL.createObjectURL(blob);

  const a = document.createElement('a');
  a.href = blobUrl;
  a.download = filename || url.split('/').pop();
  document.body.appendChild(a);
  a.click();
  document.body.removeChild(a);
  URL.revokeObjectURL(blobUrl);
}

通过 Base64 数据下载

适用于已有 Base64 编码的图片数据。

js 实现图片另存

function saveBase64Image(base64Data, filename) {
  const link = document.createElement('a');
  link.download = filename || 'image.png';
  link.href = base64Data;
  link.click();
}

注意事项

跨域限制会影响远程图片下载,服务器需配置 CORS 头部 Chrome 可能拦截非用户触发的下载,需绑定到按钮点击事件 Safari 对程序化下载有额外限制,建议使用新标签页打开方式

兼容性解决方案

对于不支持 download 属性的旧浏览器,可改用新窗口打开方式:

function fallbackSave(imageUrl) {
  window.open(imageUrl, '_blank');
}

标签: 另存图片
分享给朋友:

相关文章

vue实现图片闪烁

vue实现图片闪烁

实现图片闪烁效果的方法 在Vue中实现图片闪烁效果可以通过CSS动画或JavaScript动态控制样式。以下是几种常见方法: CSS动画实现 通过@keyframes定义闪烁动画,并应用到图片元素上…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: con…

vue 实现图片放大

vue 实现图片放大

使用 Vue 实现图片放大功能 基础实现:CSS 放大 通过 CSS 的 transform: scale() 和 transition 实现简单的鼠标悬停放大效果。 <template>…

vue实现图片跳动

vue实现图片跳动

实现图片跳动的 Vue 方法 方法一:使用 CSS 动画结合 Vue 动态类名 通过 Vue 绑定动态类名,触发 CSS 定义的跳动动画效果。 <template> <…

vue实现图片插入

vue实现图片插入

Vue 实现图片插入的方法 在 Vue 中插入图片可以通过多种方式实现,具体取决于图片的来源和用途。以下是几种常见的方法: 静态图片插入 对于项目中的静态图片,可以直接通过 src 属性引入。图片需…

vue实现图片热点

vue实现图片热点

Vue 实现图片热点的方法 在 Vue 中实现图片热点功能,可以通过监听图片的点击事件,获取点击位置的坐标,并根据坐标判断是否触发热点区域。以下是几种常见的实现方式: 使用 HTML 的 <m…