当前位置:首页 > JavaScript

js实现缩略图

2026-04-04 03:57:15JavaScript

实现缩略图的方法

使用Canvas生成缩略图
通过Canvas的drawImage方法调整图片尺寸,生成缩略图。需先加载原图,再在Canvas上绘制缩放后的图像:

js实现缩略图

function createThumbnail(imageUrl, width, height) {
  const canvas = document.createElement('canvas');
  const ctx = canvas.getContext('2d');
  const img = new Image();

  img.onload = function() {
    canvas.width = width;
    canvas.height = height;
    ctx.drawImage(img, 0, 0, width, height);
    const thumbnailUrl = canvas.toDataURL('image/jpeg');
    console.log(thumbnailUrl); // 输出Base64缩略图
  };
  img.src = imageUrl;
}

使用CSS直接缩放
通过HTML和CSS直接控制图片显示尺寸,适用于非精确缩略图场景:

js实现缩略图

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

服务端生成缩略图(Node.js示例)
使用Sharp库处理图片,适合批量或高性能需求:

const sharp = require('sharp');
sharp('input.jpg')
  .resize(200, 200)
  .toFile('output-thumbnail.jpg');

监听文件上传实时生成
结合File API实现客户端上传时预览缩略图:

document.getElementById('fileInput').addEventListener('change', function(e) {
  const file = e.target.files[0];
  const reader = new FileReader();

  reader.onload = function(event) {
    const img = new Image();
    img.onload = function() {
      // 使用Canvas处理逻辑
    };
    img.src = event.target.result;
  };
  reader.readAsDataURL(file);
});

注意事项

  • 跨域问题:Canvas处理跨域图片需设置img.crossOrigin = 'Anonymous'
  • 质量损耗:Canvas可通过toDataURL的第二个参数调整JPEG质量(0-1)。
  • 比例保持:计算缩放宽高时建议锁定原图比例,避免变形。

标签: 缩略图js
分享给朋友:

相关文章

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…

js 实现全选

js 实现全选

实现全选功能的方法 使用 JavaScript 实现全选功能通常需要操作复选框(checkbox)的状态。以下是几种常见的实现方式。 通过 DOM 操作实现全选 // 获取全选复选框和子复选…