Node.js 图像处理库 Sharp

介绍

Sharp 是高性能的图像处理库,使用了libvips,速度极快,它提调整尺寸、剪裁、旋转、转换格式等图像处理功能,下载量在同类仓库中比较高。

使用镜像

使用镜像,避免安装时进行 node-gyp 编译,可以省去安装对应编译环境,提升安装速度。

--sharp_binary_host="https://npmmirror.com/mirrors/sharp"
--sharp_libvips_binary_host="https://npmmirror.com/mirrors/sharp-libvips"

常用方法示例

获取元素尺寸:通过 .metadata() 方法获取图像的元数据,包括宽度和高度信息。

  const sharp = require('sharp');

let imagePath = 'input.jpeg'
sharp(imagePath)
  .metadata()
  .then((metadata) => {
    // 宽度、高度等
    console.log(metadata, metadata.width, metadata.height);
  })

使用 rotate() 旋转图片。

sharp(imagePath)
  .rotate()

使用 .resize() 方法将图片剪裁图片。

sharp(imagePath)
  .resize(200, 400, {
    fit: 'cover',
    position: sharp.gravity.north
  })

使用 .toBuffer() 方法获取图片的 buffer 对象,进行操作,或者使用 .toFile() 方法将处理后的图片保存到指定路径。


本文收录于专栏
收集一些好用的前端开源库,主要是 npm 包