我正在使用Nodejs Sharp将png图像转码/调整为jpg。有没有办法用白色(或其他浅色)代替透明而不是黑色?我找到了一个较旧的库的解决方案,但夏普似乎是最快和最好的。
.background不起作用
.then(data => Sharp(data.Body).resize(SIZES[resize_type].width, SIZES[resize_type].height).max().withoutEnlargement().background("white").toFormat('jpeg') .toBuffer())
答案 0 :(得分:5)
,因为它声明您可以使用背景进行颜色处理,并说明
默认背景是{r:0,g:0,b:0,alpha:1},黑色没有透明度。
所以为了得到白色,只需使用
.background({r: 255, g: 255, b: 255, alpha: 1})
答案 1 :(得分:3)
在文件中,我们应该按照Msalam的建议行事,但不幸的是,这还不够。我想出来我们应该在“.resize(...)”之前添加.flatten(true)以使其正常工作。
答案 2 :(得分:1)
在版本^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 } })