Node.js 高性能缩略图工具giszhc/vips-thumbnail 开源实践一个简单、高性能的 Node.js 图片缩略图生成库适用于GIS 平台、图片管理系统、企业官网等场景。为什么需要图片缩略图在实际项目中高清图片通常很大摄影图片10MB遥感影像几十 MB 甚至 GB产品图片数 MB如果直接加载原图页面加载慢浪费带宽消耗服务器资源因此大多数系统都会提前生成缩略图。例如原图 8000 × 6000 25MB 缩略图 300 × 300 几十 KB–安装npmnpminstallgiszhc/vips-thumbnailpnpmpnpmaddgiszhc/vips-thumbnail基本使用示例import{createThumbnail}fromgiszhc/vips-thumbnailawaitcreateThumbnail(uploads/demo.jpg,thumbnail/demo.jpg,{width:300,height:300})生成uploads └── demo.jpg thumbnail └── demo.jpg真实工程应用场景企业图片管理系统产品图片product.jpg 8MB生成product-thumb.jpg 80KB提升首页加载速度。开发踩坑记录1. 不要随意读取大图片 Buffer错误方式constbufferfs.readFileSync(file)sharp(buffer)大图片容易造成JavaScript heap out of memory推荐sharp(filePath)让 libvips 管理文件读取。2. 注意图片比例错误resize(300,300)可能导致图片变形。推荐resize({width:300,height:300,fit:cover})3. Docker 环境需要 libvipsLinux 环境aptinstalllibvipsDockerRUN apt update \ apt install -y libvips-dev性能优化建议多尺寸生成实际项目通常需要large medium small thumbnail一次生成多处使用。项目地址https://www.npmjs.com/package/giszhc/vips-thumbnail如果这篇文章对你有帮助欢迎点赞 收藏 ⭐ 关注 完结撒花✿✿ヽ(°▽°)ノ✿