我正在尝试使用 Nodejs 锐化包调整图像/转换为 png 的大小而不进行裁剪。根据文档,它是 .max() 方法,遗憾的是在调整为 png 大小时不起作用(图像被裁剪)。任何解决方法?
问问题
1285 次
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 回答