3

我正在尝试使用 Nodejs 锐化包调整图像/转换为 png 的大小而不进行裁剪。根据文档,它是 .max() 方法,遗憾的是在调整为 png 大小时不起作用(图像被裁剪)。任何解决方法?

4

2 回答 2

1

嘿,如果您仍然想知道,这就是您可以做到的。

await sharp(postImage).resize(800, 900, {fit:"contain"}).toFile("/output/path");

在 .resize() 的第三个参数中,您可能需要提及 fit,它可以是 'fill'、'contain' 等。'contain' 将嵌入图像而不改变其原始高度和宽度以及背景颜色的填充(默认黑色)。“填充”将拉伸图像。更多

于 2020-02-04T19:30:54.280 回答
1

如果您使用sharp,那么您可以使用

sharp()
  .resize(400, 400, {
    fit: sharp.fit.inside,
    withoutEnlargement: true, // if image's original width or height is less than specified width and height, sharp will do nothing(i.e no enlargement)
  })
  • inside:将适合宽度 400 和高度 400内的图像,而不会裁剪图像的任何部分,也不会为输出图像添加黑色填充以调整尺寸
  • 从技术上讲,它将图像调整为尽可能大,同时确保其尺寸小于或等于指定的尺寸。
于 2021-07-21T12:41:01.707 回答