nodejs Sharp:透明成白色
Posted
技术标签:
【中文标题】nodejs Sharp:透明成白色【英文标题】:nodejs Sharp: transparent into white 【发布时间】:2018-05-28 19:54:39 【问题描述】:我正在使用 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()
)
【问题讨论】:
大声笑我想要相反 【参考方案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 )
【讨论】:
注意:你也可以使用.flatten( background: '#ffffff' )
使其变成白色。【参考方案2】:
来自sharp documentation,因为它声明您可以使用背景进行颜色操作,并声明
默认背景是r: 0, g: 0, b: 0, alpha: 1,黑色不透明。
所以为了变白只需使用
.background(r: 255, g: 255, b: 255, alpha: 1)
【讨论】:
【参考方案3】:根据文件,我们应该按照 Msalam 建议的方式行事,但不幸的是,这还不够。我发现我们应该在 ".resize(...)" 之前添加 .flatten(true) 以使其正常工作。
【讨论】:
以上是关于nodejs Sharp:透明成白色的主要内容,如果未能解决你的问题,请参考以下文章