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

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

相关文章

react如何添加图片

react如何添加图片

在React中添加图片的方法 使用import导入本地图片 将图片文件放在项目目录中(如src/assets),通过import语句引入后作为src属性值: import logo from './…

react如何引用图片

react如何引用图片

在React中引用图片的方法 使用import直接引入图片 在React组件中,可以通过import语句将图片作为模块引入。这种方式适合在组件内部使用图片,Webpack会处理图片的路径和打包。 i…

vue实现图片切换

vue实现图片切换

实现图片切换的方法 使用v-for和v-bind动态绑定图片 通过v-for循环渲染图片列表,结合v-bind动态绑定图片路径,实现切换效果。 <template> <div&…

js实现图片的懒加载

js实现图片的懒加载

实现图片懒加载的基本原理 懒加载的核心思想是延迟加载非视口内的图片,当用户滚动页面时再动态加载即将进入视口的图片资源。这能显著减少页面初始加载时的网络请求和带宽消耗。 Intersection Ob…

vue实现图片活动

vue实现图片活动

Vue 实现图片轮播 使用 Vue 实现图片轮播可以通过多种方式完成,以下是几种常见的方法: 使用第三方库(如 Swiper) Swiper 是一个流行的轮播图库,支持 Vue 集成。安装 Swip…

vue实现预览图片

vue实现预览图片

实现图片预览功能 在Vue中实现图片预览功能可以通过多种方式完成,以下是几种常见的方法: 使用原生HTML5的dialog元素 通过HTML5的dialog元素可以快速实现模态框效果,结合图片展示实…