Javascript 如何使用选项';包含';但保留原始尺寸的纵横比?

Javascript 如何使用选项';包含';但保留原始尺寸的纵横比?,javascript,node.js,sharp,Javascript,Node.js,Sharp,我有一张1000像素乘750像素的图像 我使用lovell/sharp调整其大小: await sharp(image) .resize({ fit: sharp.fit.contain, width: 800, height: 800 }) .jpeg({ quality: 80 }) .toBuffer() 这将生成一个800px x 800px的新图像,原始图像“包含”在该区域内 我真正想要的是有一个800像

我有一张1000像素乘750像素的图像

我使用lovell/sharp调整其大小:

await sharp(image)
    .resize({
        fit: sharp.fit.contain,
        width: 800,
        height: 800
    })
    .jpeg({ quality: 80 })
    .toBuffer()
这将生成一个800px x 800px的新图像,原始图像“包含”在该区域内

我真正想要的是有一个800像素乘以600像素的最终图像。这样,可以调整图像大小并保留纵横比

我意识到只指定一个宽度就可以做到这一点。但是,使用边界框来包含调整大小的图像非常有用,以避免创建大于特定高度的图像


我可以用不同的设置在夏普中执行此操作吗?

保持
宽度
高度
,以便夏普将保持该比率

在调整大小时,低于高度将保持其比率

await sharp(image)
    .resize({
        fit: sharp.fit.contain,
        width: 800
    })
    .jpeg({ quality: 80 })
    .toBuffer()

将字符串传递给fit属性

    let resizedPhoto
    await sharp(photoBuffer)
      .resize({ width: 1200, height: 900, fit: 'fill' })
      .toBuffer()
      .then((data) => {
        resizedPhoto = data
      })
      .catch((err) => {})

Ermaghard,应该先检查一下文件:sharp.fit.insideinded。是时候再次删除这个问题了。