当前位置:首页 > 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');
}

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

相关文章

h5实现全景图片

h5实现全景图片

H5 实现全景图片的方法 使用 Three.js 库 Three.js 是一个强大的 3D 库,可以用于创建全景图片效果。以下是一个简单的实现步骤: 引入 Three.js 库 <sc…

vue 实现图片

vue 实现图片

Vue 实现图片加载与展示的方法 在 Vue 中实现图片加载和展示可以通过多种方式完成,包括静态资源引用、动态绑定、懒加载等。以下是几种常见的方法: 静态资源引用 将图片放在项目的 public 或…

jquery 图片

jquery 图片

jQuery 图片操作 jQuery 提供了多种方法来操作图片,包括加载、显示、隐藏、调整尺寸等。以下是一些常见的图片操作方法: 动态加载图片 使用 attr() 方法可以动态修改图片的 src…

vue实现图片闪烁

vue实现图片闪烁

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

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…

vue实现图片滚动

vue实现图片滚动

实现图片滚动的 Vue 组件 使用 Vue 实现图片滚动效果可以通过自定义组件或第三方库完成。以下是两种常见方法: 方法一:使用 CSS 动画和 Vue 动态绑定 通过 Vue 的 v-for 和…