FFmpeg - 使白色背景半透明

FFmpeg - 使白色背景半透明

如果图像是典型的非透明 jpeg,背景为白色。是否可以将输出背景设为半透明?我的意思是只有白色,而其他颜色保持不透明。

答案1

ffmpeg -i input.jpg -vf colorkey=white:0.3:0.5 out.png

如果您只希望白色(#ffffff)受到影响,而不影响接近的颜色,请更改0.3为。0.01

更改0.5为您想要的任何透明度量,0.0将会完全透明。

更多信息这里

更新

尝试一下半透明的背景:

ffmpeg -f lavfi -i [email protected]:s=1920x1080,format=rgba -i input.jpg -shortest -filter_complex "[1:v]colorkey=white[ckout];[0:v][ckout]overlay[out]" -map "[out]" out.png

此命令首先生成半透明的白色背景,然后将输入图像叠加在其上(同时将其所有白色像素更改为完全透明,就像我最初的答案中一样)。您可能需要将生成的背景分辨率从 1920x1080 更改为与您的图像分辨率相匹配。

答案2

magick input.jpg -fill "rgba(255,255,255,0.5)" -opaque #ffffff out.png

如果你只需要转换图像而不转换视频,图像魔术师可能是一个更好的工具。将最后一个填充值 ( 0.5) 更改为您想要的透明度。您还可以通过更改前 3 个值将背景颜色本身更改为白色以外的其他颜色。

你想要做的事情也可以用 FFmpeg 来实现,但难度更大。我用一个可行的解决方案更新了我的 FFmpeg 答案。

相关内容