我正在使用Nodejs Sharp将png图像转码/调整大小为jpg。有没有办法用白色(或其他浅色)而不是黑色来代替透明?我找到了一个较老的库的解决方案,但Sharp似乎是最快和最好的。
.background不工作
.then( data => Sharp(data.Body)
.resize(SIZES[resize_type].width, SIZES[resize_type].height)
.max()
.withoutEnlargement()
.background("white")
.toFormat('jpeg')
.toBuffer()
)发布于 2018-04-13 11:44:23
根据文档,我们应该按照Msalam的建议来做,但不幸的是,这还不够。我想我们应该在".resize(...)“之前加上.flatten(true)才能让它正常工作。
发布于 2019-12-24 11:03:46
在^0.23版本中,您可以在以下位置使用flatten(options)作为api文档:https://sharp.readthedocs.io/en/stable/api-operation/#flatten
sharp('input.png').flatten({ background: { r: 255, g: 255, b: 255 } })发布于 2018-04-11 19:24:16
来自sharp documentation,因为它声明可以使用背景进行颜色操作,并且它声明
默认背景为{r: 0,g: 0,b: 0,alpha: 1},黑色,无透明度。
所以为了获得白色,只需使用
.background({r: 255, g: 255, b: 255, alpha: 1})https://stackoverflow.com/questions/47818210
复制相似问题