当前位置:首页 > JavaScript

js 实现图片保存

2026-04-04 05:48:38JavaScript

使用 Canvas 实现图片保存

通过 Canvas 可以将图片绘制到画布上,再转换为可下载的格式。

// 创建 Canvas 元素
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');

// 设置 Canvas 尺寸
canvas.width = imgElement.width;
canvas.height = imgElement.height;

// 绘制图片到 Canvas
ctx.drawImage(imgElement, 0, 0);

// 转换为 Data URL
const dataURL = canvas.toDataURL('image/png');

// 创建下载链接
const link = document.createElement('a');
link.href = dataURL;
link.download = 'image.png';
link.click();

使用 FileSaver.js 库保存图片

FileSaver.js 是一个简化文件保存操作的库。

// 引入 FileSaver.js
import { saveAs } from 'file-saver';

// 保存图片
saveAs('image.png', 'downloaded-image.png');

使用 Blob 对象保存图片

通过 Blob 对象可以直接处理二进制数据。

// 获取图片数据
fetch('image.png')
  .then(response => response.blob())
  .then(blob => {
    const url = URL.createObjectURL(blob);
    const link = document.createElement('a');
    link.href = url;
    link.download = 'image.png';
    link.click();
    URL.revokeObjectURL(url);
  });

使用 HTML5 download 属性

对于已知 URL 的图片,可以直接使用 download 属性。

<a href="image.png" download="saved-image.png">保存图片</a>

使用第三方库 html2canvas

html2canvas 可以将网页元素转换为图片。

js 实现图片保存

// 引入 html2canvas
import html2canvas from 'html2canvas';

// 转换元素为图片
html2canvas(document.getElementById('element-to-capture')).then(canvas => {
  const link = document.createElement('a');
  link.href = canvas.toDataURL('image/png');
  link.download = 'screenshot.png';
  link.click();
});

注意事项

  • 跨域图片需要服务器设置 CORS 头
  • 大图片处理可能导致性能问题
  • 移动端浏览器可能有不同限制
  • 某些浏览器可能限制自动下载行为

以上方法覆盖了常见的图片保存需求,可根据具体场景选择合适方案。

标签: 图片js
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

jquery 图片

jquery 图片

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

vue实现图片预览

vue实现图片预览

实现图片预览功能 在Vue中实现图片预览功能可以通过多种方式完成,常见的有使用原生HTML5的<dialog>元素、第三方库如viewer.js或vue-photo-preview,以及自…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…