当前位置:首页 > JavaScript

js实现thumbnail

2026-03-14 03:56:52JavaScript

使用Canvas生成缩略图

通过Canvas的drawImage方法可以缩放图片并生成缩略图。

js实现thumbnail

function generateThumbnail(file, width, height) {
  return new Promise((resolve) => {
    const reader = new FileReader();
    reader.onload = (e) => {
      const img = new Image();
      img.onload = () => {
        const canvas = document.createElement('canvas');
        canvas.width = width;
        canvas.height = height;
        const ctx = canvas.getContext('2d');
        ctx.drawImage(img, 0, 0, width, height);
        resolve(canvas.toDataURL('image/jpeg'));
      };
      img.src = e.target.result;
    };
    reader.readAsDataURL(file);
  });
}

使用第三方库(如sharp-js)

Node.js环境下可使用sharp库高效处理图片缩略图。

js实现thumbnail

const sharp = require('sharp');
async function createThumbnail(inputPath, outputPath, width, height) {
  await sharp(inputPath)
    .resize(width, height)
    .toFile(outputPath);
}

纯CSS实现缩略图效果

通过CSS的object-fit和固定宽高实现视觉缩略图,不改变原始文件。

<style>
  .thumbnail {
    width: 150px;
    height: 150px;
    object-fit: cover;
  }
</style>
<img src="original.jpg" class="thumbnail">

使用URL.createObjectURL预览

适用于上传前快速生成客户端缩略图预览。

function previewThumbnail(file) {
  const url = URL.createObjectURL(file);
  const img = document.createElement('img');
  img.src = url;
  img.style.width = '100px';
  document.body.appendChild(img);
}

注意事项

  • Canvas方法会损失部分画质,可通过quality参数调整JPEG输出质量。
  • 大文件处理时建议使用Web Worker避免阻塞主线程。
  • 移动端需注意内存限制,建议分块处理或降低分辨率。

标签: jsthumbnail
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…